Tag: facebook

node.js – express.static和facebook-wrapper – 无法POST

我正在做一个node.js项目,我需要做一个与Facebook的连接。 我选了一些脸谱库。 我最喜欢的是facebook-wrapper 。 他们的例子工作完美,但是当我添加express.static(__dirname + '/public') ,我得到一个错误: Cannot POST / 。 我也尝试了连接 ,但我有同样的错误。 var server = express.createServer( express.logger(), express.bodyParser(), express.cookieParser(), express.session({ secret: 'secret123' }), facebook.auth(options), express.static(__dirname + '/public') );

asynchronous和并行处理

在这个问题上已经有不止一个post了,但是我仍然无法把这个问题弄得头晕目眩。 如果我不得不打电话给三个外部站点,Facebook,Twitter和Instagram,并且我使用asynchronous并行方式启动这三个站点,并且挂起等待Facebook响应的时间为20秒,但我不确定发生了什么。 这个电话是Twitter的开始和Instagram,他们都运行并可能在Facebook的调用之前完成,或者整个用户线程暂停,直到下一轮事件循环,另一个用户呼叫通过? 它看起来像后者给我们。 还是整个线程停下来等待? 根据请求,这里是代码的减less版本。 Service_requests是一组调用Facebook,Instagram和Twitter的函数。 还有一些其他的东西在这里,但它的肉很简单。 Async.parallel(service_requests, function (err, results) { if (err) { next(err); return; } var articles = []; for (var i = 0; i < results.length; i++) { articles = articles.concat(results[i]); } next(null, articles); });

PassportJS上的Facebook策略可以有多个回叫url吗?

我使用PassportJS在我的网站上对Facebook用户进行身份validation。 其中最棘手的部分是,我首先使用简单的Facebook权限login用户,每个用户默认授予Facebooklogin权限,但用户根据他们的行为,以后可以授予Fanpage Admins权限。 我没有问题处理这两个授权,hovewever,当我想redirectFanpage Admin用户到不同的url,我不能因为Passport只允许我为我的Facebook策略设置一个单一的callbackURL,因为所有来自Facebook的callback结束at / auth / facebook / callback。 var passportOptions = { successRedirect: '/admin/', failureRedirect: '/' } var fbAdminPermissions = { scope: ["email, manage_pages"] } var fbNormalPermissions = { scope: ["email"] } app.get('/auth/facebook', passport.authenticate('facebook', fbNormalPermissions)); app.get('/auth/facebookPages', passport.authenticate('facebook', fbAdminPermissions)); app.get('/auth/facebook/callback', passport.authenticate('facebook', passportOptions)); 我需要有多个successRedirecturl取决于如果用户授予一般权限或Facebookpipe理员权限。 我想将FBAdminsredirect到另一个url,而不是/ admin root。 我希望如何实现这一点,而不是创造一个新的Facebook战略?

使用facebook-node-sdk模块/(#324)上传照片需要上传文件

我正在尝试使用Facebook节点sdk模块发送照片到一个页面。 https://github.com/Thuzi/facebook-node-sdk/ 我可以张贴到页面墙或从url上传。 但我有一个问题,试图从数据上传照片。 这是我如何连接: FB.api('oauth/access_token', { client_id: clientid, client_secret: clientsecret, redirect_uri: redirecturi, code: code, scope: scope, fileUpload : true, }, function (resf) { …} 我得到这样的好访问令牌: FB.api('/me/accounts', function (resf) { if (!resf || resf.error) { console.log(!resf ? 'error occurred' : resf.error); return; } for (var i = 0; i < resf.data.length; i++) { if (resf.data[i].id […]

Facebook“必须使用主动访问令牌”

我正在使用这个为我的节点应用程序。 我可以用脚本得到令牌,然后让/me工作。 但是,当我试图让me/accounts?fields=name,id&limit=1000我得到一个错误。 必须使用活动访问令牌来查询有关当前用户的信息。 我在这里testing我的令牌,我得到了以下结果。 App ID foo : bar User ID 10153192307109460 : Krister Johansson User last installed this app via API v2.x Issued 1440597064 (about a minute ago) Expires 1445781064 (in about 2 months) Valid True Origin Web Scopes manage_pages, publish_pages, publish_actions, public_profile 如果我在graphicsAPI资源pipe理器中testing我的令牌,则不会收到任何错误,并会列出我的帐户。

没有'Access-Control-Allow-Origin'标题问题与hapijs

嗨,我有我的Facebook应用程序的问题。 当我开始authentication后,它给了我这个错误: XMLHttpRequest无法加载http:// localhost:8000 /信息。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因'http:// localhost:8080'因此不被允许访问。 :8080 / carRandomizer:1 XMLHttpRequest无法加载http:// localhost:8000 / rand。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因'http:// localhost:8080'因此不被允许访问。 所以我明白这是一个CORS的问题,我已经尝试遵循官方文档http://hapijs.com/api#serverrouteoptions ,现在我在我的server.js文件上设置: server.connection({port:process.env.PORT,routes:{cors:true}}); 现在我有同样的错误: XMLHttpRequest无法加载https://www.facebook.com/v2.3/dialog/oauth?client_id=1463042613952341&respo…k&state=URaCt6cXqf_JzJYgS9KlwM&scope=public_profile%2Cuser_friends%2Cemail。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因'null'因此不被允许访问。 angular.js:12330(匿名函数)@ angular.js:12330(匿名函数)@ app.js:817(匿名函数)@ angular.js:14567a。$ get.n. $ eval @ angular.js:15846a。 $ get.n. $ digest @ angular.js:15657a。$ get.n. $ apply @ angular.js:15951l @ angular.js:10364F @ angular.js:10536e @ angular.js:10487:8080 / carRandomizer: 1 XMLHttpRequest无法加载https://www.facebook.com/v2.3/dialog/oauth?client_id=1463042613952341&respo…k&state=j-vSbeB6rGvEi_cgu-9TrM&scope=public_profile%2Cuser_friends%2Cemail。 […]

nodejs护照 – 脸书authentication

我创build了一个Facebook应用程序,只有我使用。 现在我已经成功了,但是除了我以外没有其他人能够login。 他们得到以下错误。 FacebookTokenError: This authorization code has been used. at Strategy.parseErrorResponse (/var/www/html/project/node_modules/passport-facebook/lib/strategy.js:199:12) at Strategy.OAuth2Strategy._createOAuthError (/var/www/html/project/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:345:16) at /var/www/html/project/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:171:43 at /var/www/html/project/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:177:18 at passBackControl (/var/www/html/project/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:123:9) at IncomingMessage.<anonymous> (/var/www/html/project/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:143:7) at IncomingMessage.EventEmitter.emit (events.js:117:20) at _stream_readable.js:920:16 at process._tickCallback (node.js:415:13) 这里可能是什么问题。 应用程序是活的。

发布到使用facebook nodejs sdk:OAuthException组

我正在尝试使用nodejs sdk发布到Facebook群组墙( https://github.com/node-facebook/facebook-node-sdk ) 这是我正在使用的一段代码: 访问令牌(工作正常): FB.api('oauth/access_token', { client_id: appId, client_secret: appSecret, grant_type: 'client_credentials' }, function (res) { if (!res || res.error) { var errorMessage = !res ? 'Unkown error' : res.error; log.error(site + " Failed to get fb access token " + errorMessage); } var accessToken = res.access_token; FB.setAccessToken(accessToken); }); 尝试发布: var message = […]

{

我有一个帆应用程序。 我正在尝试实施Facebooklogin。 当我点击loginFacebook的button,我得到这个错误: error: A server error occurred in a request: error: FacebookTokenError: This authorization code has been used. 完整的错误日志看起来像这样: error: A server error occurred in a request: error: FacebookTokenError: This authorization code has been used. at Strategy.parseErrorResponse (/home/node_modules/passport-facebook/lib/strategy.js:198:12) at Strategy.OAuth2Strategy._createOAuthError (/home/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:341:16) at /home/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:166:45 at /home/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:177:18 at passBackControl (/home/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:123:9) at IncomingMessage.<anonymous> (/home/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:143:7) at IncomingMessage.emit (events.js:117:20) […]

Facebook的信使,如何处理发送的位置

根据本指南 ,它描述了我们如何发送消息和处理button文本等。 但是,当用户发送到geolocation机器人,我的webhook接收它是这样的: { sender: { id: 99999999999999}, recipient: { id: 99999999999999 }, timestamp: 99999999999, message: { mid: 'mid.9999999:999999999', seq: 231, attachments: [ [Object] ] } } 位置作为attachments数组中的某种对象发送到webhook。 当我在我的代码中,我试图让他们这样的: event.message.attachments[0].longitude event.message.attachments[0].latitude 我弄undefined明白 如何获取用户发送的位置的经纬度? 文档中没有对此的描述。 UPDATE 经过一番尝试,我能够得到它的所有属性。 当用户发送他们的位置我得到这个结构: {url: https://www.facebook.com/l.php?u=https%3A%2F%2Fwww.bing.com%2Fmaps%2Fdefault.aspx%3Fv%3D2%26pc%3DFACEBK%26mid%3D8100%26where1%3D43.230507%252C%2B76.945031%26FORM%3DFBKPL1%26mkt%3Den-US&h=vAQHe08Kz&s=1&enc=AZPRe3VQFnThq3_jdPFg8R4WWUZxWJA1XjbVvVua4fD0PNpt2u26hvS-noUEU55qQNC6Wm9hNGwpGntrUgu1nx7KsSIKRbGQyKEXueAImV3Kyg} 这是巨大的URL 。 如果您通过浏览器打开此链接,则会打开Bing地图并显示此位置。 这些数据很难处理。 它强制用户编写自己的parsing器。