通过护照获取Facebook页面的访问令牌和页面访问令牌

时间:2019-03-28 09:52:06

标签: javascript node.js passport.js

我正在构建Node-Express微服务,以便我的Facebook应用可以访问其他用户页面并代表他们发布信息。我需要使用我的通行证js和passport-facebook的accessToken和pageAccessToken 策略。

我正在使用passport-facebook github页面中提供的默认演示入门代码。我不知道done或cb的工作原理以及从何处获取User模型。

const express = require('express');
const passport = require('passport')
const FacebookStrategy = require('passport-facebook').Strategy;
const router = express.Router();
const moment = require('moment');
const axios = require('axios');
const {parse, stringify} = require('flatted/cjs');

const config = require('../config/config');
const constant = require('../config/constants');

passport.use(new FacebookStrategy({
  clientID: config.FACEBOOK_ID,
  clientSecret: config.FACEBOOK_SECRET,
  callbackURL: "http://localhost:5000/facebook/login/status",
  profileFields: ['id', 'displayName', 'link', 'email']
},  
(accessToken, refreshToken, profile, done) => {
  User.findOrCreate({ facebookId: profile.id }, (err, user) => {
    if (err) { return done(err); }
    done(null, user);
  });
}));


router.get('/login',
  passport.authenticate('facebook', {
    scope: ['publish_pages', 'manage_pages', 'pages_show_list']
  })     
)

router.get('/login/status', passport.authenticate('facebook',
  (err, user, info) =>  console.log(`user: ${user}`)
), (req,res) => {
  res.send(req.body);
})

module.exports = router;

github代码:https://github.com/harshdeepkanhai/facebook_access_token 登录回调URL后,需要将accessToken作为对象。

0 个答案:

没有答案