最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何在带有Express的NodeJS中将Facebook Graph API与Passport

IT培训 admin 15浏览 0评论

如何在带有Express的NodeJS中将Facebook Graph API与Passport

问这个问题之前,我已经参考了以下内容,但没有帮助我

  1. Passport.js & Facebook Graph API
  2. Retrieving photo from Facebook using passport-facebook
  3. .php/2017/08/12/search-facebook-graph-api-nodejs/
  4. How to use Facebook Graph API after authenticating with Passport.js facebook strategy?enter link description here

[有些帖子说要使用passport-facebook-token,但我不想使用,因为我想仅使用passport-facebook扩展我的应用程序的现有功能

问题陈述

当前,我正在使用passport-facebook进行身份验证,它可以正常工作,现在我想扩展功能以使用Facebook Graph API来获取登录到我的应用程序的用户的照片

因此,使用Facebook Graph API来获取我必须在下面使用Node JS中的请求模块进行调用的用户照片,正文部分将为我返回预期的结果

var request = require("request");

var options = {
    method: 'GET',
    url: '/',
    qs: {
        access_token: 'EBBCEdEose0cBADwb5mOEGISFzPwrsUCrXwRWhO87aXB9KsVJlgSLc19IdX9D9AKU7OD5SdFOqPXW3eLm8J3HltZC14VexdMsEDW35LDWASdVDNGp5brFERBETsIvxXJIFXo7QSum5apHXeRyQk7c2PQljmf5WHObZAwXVzYjqPd4lziKTUK48Wfrw5HPwZD'
    },
    headers: {
        'content-type': 'application/json'
    }
};

request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
});

但是现在我想创建自己的自定义表达GET API,当我调用该函数时,应该获得上述主体响应,

例如GET : /graph/photos

app.get('/graph/photos', function (req, res) {
    res.send(body)//Here I wanted to get the same response as of the request module above
});

但是我有以下挑战

  1. 从passport-facebook获取access_token并将其传递给请求模块
  2. 如果用户未通过身份验证,则会在API响应中引发错误

但是我可以采用以下方法,我遵循了]中的教程>

app.get('/graph/photos', isLoggedIn, function (req, res) {
    var hsResponse = request({
        url: '',
        method: 'GET',
        qs: {
            "access_token": req.user.facebook.token
        },
    }, function (error, response, body) {
        res.setHeader('Content-Type', 'application/json');
        res.send(body);
    });
});

但是我面临的问题是每次调用API / graph / photos /,它将尝试重定向以检查用户是否已登录,因此我将无法直接在Angular Service中使用并获取以下错误

错误

无法加载http://localhost:3000/graph/photos:从'http://someurl'到'http://someurl'的重定向已被CORS策略阻止:所请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问源'http://localhost:4200'。

在问这个问题之前,我已经参考了以下内容,但并没有帮助我Passport.js和Facebook Graph API使用Passport-facebook https://www.hitchhq/facebook -...从Facebook检索照片]] >

尝试一下...我为我的项目编写了函数,您只需自定义即可。...

回答如下:

尝试一下...我为我的项目编写了函数,您只需自定义即可。...

如何在带有Express的NodeJS中将Facebook Graph API与Passport

问这个问题之前,我已经参考了以下内容,但没有帮助我

  1. Passport.js & Facebook Graph API
  2. Retrieving photo from Facebook using passport-facebook
  3. .php/2017/08/12/search-facebook-graph-api-nodejs/
  4. How to use Facebook Graph API after authenticating with Passport.js facebook strategy?enter link description here

[有些帖子说要使用passport-facebook-token,但我不想使用,因为我想仅使用passport-facebook扩展我的应用程序的现有功能

问题陈述

当前,我正在使用passport-facebook进行身份验证,它可以正常工作,现在我想扩展功能以使用Facebook Graph API来获取登录到我的应用程序的用户的照片

因此,使用Facebook Graph API来获取我必须在下面使用Node JS中的请求模块进行调用的用户照片,正文部分将为我返回预期的结果

var request = require("request");

var options = {
    method: 'GET',
    url: '/',
    qs: {
        access_token: 'EBBCEdEose0cBADwb5mOEGISFzPwrsUCrXwRWhO87aXB9KsVJlgSLc19IdX9D9AKU7OD5SdFOqPXW3eLm8J3HltZC14VexdMsEDW35LDWASdVDNGp5brFERBETsIvxXJIFXo7QSum5apHXeRyQk7c2PQljmf5WHObZAwXVzYjqPd4lziKTUK48Wfrw5HPwZD'
    },
    headers: {
        'content-type': 'application/json'
    }
};

request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
});

但是现在我想创建自己的自定义表达GET API,当我调用该函数时,应该获得上述主体响应,

例如GET : /graph/photos

app.get('/graph/photos', function (req, res) {
    res.send(body)//Here I wanted to get the same response as of the request module above
});

但是我有以下挑战

  1. 从passport-facebook获取access_token并将其传递给请求模块
  2. 如果用户未通过身份验证,则会在API响应中引发错误

但是我可以采用以下方法,我遵循了]中的教程>

app.get('/graph/photos', isLoggedIn, function (req, res) {
    var hsResponse = request({
        url: '',
        method: 'GET',
        qs: {
            "access_token": req.user.facebook.token
        },
    }, function (error, response, body) {
        res.setHeader('Content-Type', 'application/json');
        res.send(body);
    });
});

但是我面临的问题是每次调用API / graph / photos /,它将尝试重定向以检查用户是否已登录,因此我将无法直接在Angular Service中使用并获取以下错误

错误

无法加载http://localhost:3000/graph/photos:从'http://someurl'到'http://someurl'的重定向已被CORS策略阻止:所请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问源'http://localhost:4200'。

在问这个问题之前,我已经参考了以下内容,但并没有帮助我Passport.js和Facebook Graph API使用Passport-facebook https://www.hitchhq/facebook -...从Facebook检索照片]] >

尝试一下...我为我的项目编写了函数,您只需自定义即可。...

回答如下:

尝试一下...我为我的项目编写了函数,您只需自定义即可。...

发布评论

评论列表 (0)

  1. 暂无评论