Articles of facebook graph api

passport-facebook-token返回InternalOAuthError:validation令牌时无法获取用户configuration文件

我有一个iOS应用程序,我使用Facebook APIlogin,我得到一个访问令牌作为回应。 现在我想使用这个令牌来validation我的后端服务器上的用户。 我使用Passport.js的passport-facebook-token策略。 var FacebookTokenStrategy = require('passport-facebook-token'); module.exports = function(app) { app.use(passport.initialize()); app.use(passport.session()); passport.use(new FacebookTokenStrategy({ clientID: '32424222424024', clientSecret: '3292e42148264c2817523232446187', callbackURL: "http://localhost:3000/auth/facebook/callback" }, function(accessToken, refreshToken, profile, done) { User.findOne({ facebookId: profile.id }, function (err, user) { console.log("facebook"); return done(err, user); }); } )); app.get('/auth/facebook', passport.authenticate('facebook-token'), function (req, res) { res.send(req.user? 200 : 401); } ); […]

如何在服务器端(Node.js)以编程方式validationFacebook用户的访问令牌?

我有一个Facebook用户的访问令牌,我想validation这个访问令牌是否有效,即是否知道Facebook,目前有效,等等… 到目前为止,我已经看了Facebook的各种API ,基本上,我需要的是用户function的组合,以获取用户的详细信息,但是对于由访问令牌(而不是他/她的ID)标识的用户, 。 我想我需要处理访问令牌API ,但是由于我对开发Facebook应用程序完全陌生,所以我不确定从哪里开始。 基本上,我无法想象这应该是一个相当艰巨的任务。 直觉上我会期望的东西,如: GET http://graph.facebook.com/me?accessToken=$INSERT_TOKEN_HERE 有这样的事情吗? 如果是这样,请你指点我正确的方向? 即使是关于search什么(例如,术语)的一些提示可能会有所帮助。 顺便说一下,这个请求shell是从服务器发送的,而不是从浏览器发送的。 我不知道这是否重要,但我正在使用Node.js。 此外,如果有一个现成的模块可以将REST调用抽象出来,这可能也是有帮助和有趣的。 有任何想法吗?

如何用Oauth请求提交和处理请求参数?

我正在使用MeanJS堆栈来开发一个Web应用程序。 我遇到的问题是,我的常规注册过程有一些Oauth用户configuration文件不常见的独特参数。 所以,当我有用户去注册Facebook的时候,我把它们移动到一个新的registry单上,让他们填写额外的参数,然后点击“用facebook注册”。 这些路由与在这里find的常见MeanJS路由相同: https : //github.com/meanjs/mean/blob/master/app/routes/users.server.routes.js 具体来说这些行: app.route('/auth/facebook').get(passport.authenticate('facebook', { scope: ['email'] })); app.route('/auth/facebook/callback').get(users.oauthCallback('facebook')); 我想要做的是有额外的参数附加到请求对象,所以当auth进程到达exports.saveOAuthUserProfile里面: https : //github.com/meanjs/mean/blob/master/app/ controllers / users / users.authentication.server.controller.js这个函数将能够访问这些参数并将它们保存为用户模型的一部分。 我已经尝试将参数附加到获取请求和访问 req.params.paramId 但这是行不通的,因为你不能注册一个param加载的请求与Facebook的API(或至less它似乎是这样)。 而且我在StackOverflow的其他地方读过,你可以加载请求状态,但对我来说这似乎很奇怪。 以下是该链接: Facebook OAuth:自定义callback_uri参数 因此,有关如何将额外数据加载到Oauth请求的指导,以便在保存用户configuration文件时,我可以访问并保存它,这将是非常棒的。 多谢你们。

“这是不允许的,需要预检的错误”在护照Facebooklogin错误的交叉来源?

我有一个node.js快递应用程序,它提供了RESTful API,我使用的是用于Facebook身份validation的护照。 我启用了服务器端的所有CORSconfiguration,并能够通过jQuery Ajax使用API​​。 但是对于Facebook身份validation,我收到以下错误: XMLHttpRequest cannot load http://localhost:3000/auth/facebook. The request was redirected to 'https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=http%…_me%2Cuser_checkins%2Cuser_likes&client_id=12345678&type=web_server', which is disallowed for cross-origin requests that require preflight. / auth / facebook端点是这个。 app.get('/auth/facebook', passport.authenticate('facebook', { scope: ['email', 'user_about_me', 'user_checkins', 'user_likes'], failureRedirect: users.authFailCallback }), users.signin); 所以基本上它被redirect到Facebook的API(302),它不允许CORS。 有什么办法可以解决这个问题吗? 或者我需要从服务器端本身调用Facebook API?

node.js https.get()激发错误ECONNREFUSED

OAuth舞蹈的其中一个步骤是将通过callback接收到的代码交换为访问令牌。 特别是对于Facebook服务器端身份validation,以下https GET请求返回响应正文中的访问代码: https://graph.facebook.com/oauth/access_token? client_id=YOUR_APP_ID &redirect_uri=YOUR_REDIRECT_URI &client_secret=YOUR_APP_SECRET &code=CODE_GENERATED_BY_FACEBOOK Node.js在尝试连接时发生错误: https.get( /**String | Object*/ options, function ( res ) { res.setEncoding( 'utf8' ); res.on( 'data', function ( data ) { // parse response body } ); } ).on( 'error',function ( e ) { Log.w( TAG, "Error requesting access_token", e ); } ).end(); 错误是: { code: 'ECONNREFUSED', […]

什么是正确的方式做facebooklogin移动应用程序(与node.js / passport.js服务器)

我有一个移动应用程序正在与后端服务器,我想了解什么是使用Facebooklogin(创build一个帐户),然后保持整个系统同步的最佳做法。 以下是我目前了解的内容: – 移动应用程序可以在设备上进行login并获取access_token – 访问令牌可以传输到服务器。 我做了一个使用passport-facebook-token连接到api.myhost.com/auth/facebook路由的概念certificate,似乎我可以validation用户并检索他的FB数据。 因此,我可以将他匹配到我的数据库中的现有用户或创build一个新的logging。 我不明白:1)我必须使用https将FB令牌传输到我的服务器吗? 2)我应该怎么做我的其他请求,应该被authentication。 我不认为去FB每个请求是一个选项。 想到的一个select是生成另一个(我自己的)访问令牌,并返回作为FBauthentication的结果。 最简单的方法是使用passport-facebook-token会话(这样cookie会话ID可以被序列化并反序列化成用户ID)。 但这意味着我需要维护一些会议的KV存储。 另一种方式是为该用户生成我自己的随机令牌,并在成功login时将其与用户ID一起返回,并将其存储在用户logging中,并且每次从客户端调用API调用此ID /令牌对,并且每次都手动重新validation它们依靠护照。 或者也许凭借护照本地策略呢? 哪一个更好? 每个人的优点/缺点是什么? 2)如果我打算使用FB令牌发布到FB和做graphics分析(朋友等),我打算将令牌存储在服务器上。 我多久需要刷新一次? 每当应用程序启动并刷新客户端上的令牌时,是否应该使用新的FB令牌重新进行身份validation? 那么通过服务器到服务器调用刷新用户FB令牌怎么样? 如果我想保持对用户的FB数据的访问,但是用户停止使用我的或者很less使用它,我是否应该这样做? 是否有任何工作计划的食谱,运作良好? 谢谢!

护照,脸书不收取电子邮件

我已经在我的网站上使用快递公司和护照Facebook实施了Facebook-LogIn。 它运作良好(我得到现场configuration文件),但问题是,我没有得到电子邮件。 我收到一个错误: email : profile.emails[0].value, TypeError:无法读取未定义的属性“0” 我的代码: passport.use('facebook',new FacebookStrategy({ clientID : config.facebook.id, clientSecret : config.facebook.secret, callbackURL : '/auth/facebook/callback', profileFields : ['id', 'displayName', 'emails','photos'] }, function(accessToken, refreshToken, profile, done) { User.findOne({provider_id: profile.id}, function(err, user) { if(err) throw(err); if(!err && user!= null) return done(null, user); var user = new User({ provider_id : profile.id, name : profile.displayName, […]

上传Base64图片Facebook Graph API

我正在尝试使用Node.js将base64图像上传到FaceBook页面。 我设法得到上传与所有的多部分数据等工作,如果我从文件系统读取文件(即使用fs.readFileSync('c:\ a.jpg')) 但是,我应该使用base64编码的图像,并尝试上传它,它给了我以下错误: {"error":{"message":"(#1) An unknown error occurred","type":"OAuthException","code":1}} 我已经尝试将其转换为二进制的new Buffer(b64string, 'base64'); 并上传,但没有运气。 我一直在为此奋斗了3天,所以anyhelp将不胜感激。 编辑:如果任何人也知道我可以如何将base64转换为二进制,并成功上传,这也适用于我。 编辑:代码片段 var postDetails = separator + newlineConstant + 'Content-Disposition: form-data;name="access_token"' + newlineConstant + newlineConstant + accessToken + newlineConstant + separator; postDetails = postDetails + newlineConstant + 'Content-Disposition: form-data; name="message"' + newlineConstant + newlineConstant + message + newlineConstant; //Add the Image […]