2017-11-15 7 views
0
私はクエリパラメータとしてアクセストークンを渡すことで、ユーザーの電子メールと名前を取得できますか

は、どのように私はFB.api

var FB = require('fb'), 
 
    fb = new FB.Facebook(options); 
 
    var options = FB.options(); 
 
var {Facebook, FacebookApiException} = require('fb'), 
 
    fb = new Facebook(options); 
 
    
 
FB.api('me/feed', 'post', { fields: ['email', 'name']}, function (req, res) { 
 
//FB.setAccessToken(req.query.fb_token); 
 
    if(!res || res.error) { 
 
    console.log(!res ? 'error occurred' : res.error); 
 
    return; 
 
    } 
 
    console.log('Post Id: ' + res.id); 
 
});

を使用して、Facebookのログインを行うことができます。

+1

'/ feed'を削除すると多分?これは投稿のリストで、投稿にはメールアドレスがありません。 – CBroe

答えて

0

テストしますが、NPM上のドキュメントによらない:

FB.setAccessToken(req.query.fb_token); 
FB.api('me', {fields: ['email', 'name'], (req, res) => { 
    if(!res || res.error) { 
    console.log(!res ? 'error occurred' : res.error); 
    return; 
    } 
    console.log(res.email, res.name); 
}); 

GETとPOSTを使用するとき、あなたが知っていることを確認し、そしてもちろんフィードエンドポイントが任意の電子メールを返しません。あなたはそのコードをドキュメントからコピーしましたが、間違った場所からコピーしました;)

+0

'function facebook(req、res、next){ var token = req.query.fb_token; console.log(トークン); FB.setAccessToken(トークン); if(!res || res)FB.api( 'me'、{fields:['email' .error){ console.log(!res? 'エラーが発生しました:res.error); return; } console.log(res.email、res.name); }); } router.post( '/ fb'、facebook); ' –

+0

私はこれらの変更を行いましたが、出力が得られません。 –

+0

もっと具体的にしてデバッグをしてください。コールバックの開始時に "console.log(res)"を実行するとどうでしょうか?アクセストークンもデバッグしましたか? – luschn