Tag: facebook graph api

“这是不允许的,需要预检的错误”在护照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 […]