如何在带有Express的NodeJS中将Facebook Graph API与Passport
问这个问题之前,我已经参考了以下内容,但没有帮助我
- Passport.js & Facebook Graph API
- Retrieving photo from Facebook using passport-facebook
- .php/2017/08/12/search-facebook-graph-api-nodejs/
- 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
});
但是我有以下挑战
- 从passport-facebook获取access_token并将其传递给请求模块
- 如果用户未通过身份验证,则会在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
问这个问题之前,我已经参考了以下内容,但没有帮助我
- Passport.js & Facebook Graph API
- Retrieving photo from Facebook using passport-facebook
- .php/2017/08/12/search-facebook-graph-api-nodejs/
- 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
});
但是我有以下挑战
- 从passport-facebook获取access_token并将其传递给请求模块
- 如果用户未通过身份验证,则会在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)
- 暂无评论