1

我使用Facebook策略驗證了我的用戶並獲得了他們的用戶信息。我的應用程序現在需要在Facebook上點擊其他圖形api端點。我沒有看到一種方法來訪問一個工具來發送請求到Facebook圖形API。在進一步檢查策略後,我發現一切都是圍繞OAuth 2策略構建的。如何在使用Passport.js facebook策略進行身份驗證之後使用Facebook Graph API?

1)如何使用facebook策略調用其他圖形API端點?

2)我是否應該鑽入護照api某處訪問相關的oauth對象以實現此目的?

或者我在想這個錯誤,我應該得到用戶的訪問令牌和使用另一個第三方庫查詢Facebook API?

回答

2

後一個,你只需要訪問令牌,然後你可以發送一個普通的請求與香草或你想要的每個庫(我個人喜歡破壞)。

這應該是這樣的,那麼:

Wreck.get('https://graph.facebook.com/me?access_token=' + access_token, function(err, res, payload) { }); 
0

隨着「護照Facebook的策略:

的accessToken與輪廓一起返回。

比方說你已經設置了以下內容:

// .: Passport Strategy :. 
const Strategy = require('passport-facebook').Strategy; 
passport.use(new Strategy({ 
    clientID:"IDxxxxxxxxxxxxxxxxxxx", 
    clientSecret:"SECRETxxxxxxxxxxxxxxxxxxx", 
    profileFields: ['id', 'displayName', 'name', 'picture.type(large)', 'emails'], 
    callbackURL:"http://localhost:1337/login/facebook/return" 
}, FacebookAccess) 
) 
function FacebookAccess(accessToken, refreshToken, profile, cb){ 
    // accessToken : valid FB.GraphAPI token 
    // refreshToken : undefined for Facebook 
    profile.token = accessToken 
    return cb(null, profile); 
} 

令牌包含到沿到您決定 passport.serializeUser功能通過輪廓對象,例如:

passport.serializeUser(function(user, cb){ 
    var platform_user = { 
    fbid:user.id, 
    name:user.displayName, 
    mail:user.emails[0].value, 
    token:user.token, 
    avtr:user.photos[0].value 
    } 
    cb(null, platform_user) 
}) 
相關問題