Articles of facebook graph api

HTML5 Websocket + Node.js实时通知系统

在过去的几周里,我用socket.io构build了一个使用HTML5 Websockets和node.js的小型通知系统。 还有一些事情我还没有解决。 我已经阅读了使用node.js的实时通知应该是最好的性能解决schemevs长轮询等,因为非阻塞I / O操作。 现在假设我们必须通知这个用户的朋友。 就像“我买了一个新的iPhone”。 我如何教node.js实时通知特定用户1:n? 直到知道我只有发送和接收消息1-1通信。 这意味着我必须首先检查facebook api friendlist,并找出哪个facebook_id以某种方式与哪个socket_id连接。 然后检查用户的隐私设置,如果他想接收通知,然后发送并保存到数据库中。 所以对我来说,这似乎不是最有效的解决scheme… 目前, 我会使用mongo-db本地驱动程序的node.js和数据库操作完成由服务器的javascript。 我仍然需要执行facebooks javascript sdk来获取好友列表,但是我会遇到用户隐私设置的问题。 这是不是破坏了非阻塞I / O的所有优点? 你怎么解决这个问题呢? 对我来说,这似乎很复杂。 非常感谢你。

在Node.js中将mikeal的请求和http / https模块进行比较

对于我的应用程序,我需要从另一个API端点读取,就像Facebook一样。 这就是我现在正在做的事情: var https=require('https'); var querystring=require('querystring'); var _my_lat=37.78583526611328; var _my_lng=122.40641784667969; var _my_fb_access_token ='somebigvaluefromfacebook'; var params = { type: 'place', center: _my_lat+','+_my_lng, access_token: _my_fb_access_token }; var url = 'https://graph.facebook.com/search?'+querystring.stringify(params); https.get(url, function(res) { var msg = ''; res.on('data', function(chunk) { msg+=chunk; }); res.on('end', function() { var v = JSON.parse(msg); //do stuff with v }); }).on('error', function(e) { […]

如何从node-webkit获取无托pipe页面的桌面应用程序的访问令牌?

我正在尝试使用node-webkit创build一个桌面应用程序。 这个应用程序的一部分需要使用Facebook获取/发布一些内容到任何个人资料(Facebook用户),使用我的个人电脑上的桌面应用程序。 关于facebook api文档( https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.0 ),我必须手动实现loginstream程并使用以下URI作为redirectURI: https://www.facebook.com/connect/login_success.html : https://www.facebook.com/connect/login_success.html 目前,在我的node-webkit应用程序中,通过一个子窗口(一个popup窗口),用户可以loginFacebook并授权我的桌面应用程序与其configuration文件进行交互。 这是代码的一部分: var url = "https://www.facebook.com/dialog/oauth?client_id=myclientID&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token&scope=publish_actions"; loginWindow = window.open(url, 'Login facebook', 'location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,height=480,width=640', false); 之后,用户被redirect到下面的URI,正如文档中提到的,访问令牌显示正确: https://www.facebook.com/connect/login_success.html#access_token=theBigTokenString&expires_in=3864 。 但它只出现几秒钟,之后,该url被replace为https://www.facebook.com/connect/blank.html#_=_ (带有安全警告消息)。 我读过一些build议添加eventListener像hashchange到打开的窗口,以捕获访问令牌。 但是,在子窗口内部redirect后,我不再可以通过JavaScript与它进行交互。 所以最后,我无法获得子窗口已经检索的访问令牌,并使其可见几秒钟。 任何人都可以帮助我得到这个用户访问令牌node-webkit? 我真的不想在我的桌面应用程序和Facebook之间使用服务器(用于托pipe网页)。 预先感谢您的帮助。

发布多个照片到一个职位

我一直在试图创build一个应用程序,需要多张照片才能附加到一个post。 这些是我尝试过的以下尝试, 首先,我使用了JS SDK来实现不同function的Facebook-node-sdk ,但官方的Js Sdk没有file upload的选项,然后我通过form-data的帮助将附件/插入图片本身添加到HTTP POST ,用下面的代码 – var form = new FormData(); form.append('file', fs.createReadStream(picPaths[0])); form.append('message', "Hello"); //Put message var ACCESS_TOKEN = "ACCESS_TOKEN"; var options = { method: 'post', host: 'graph.facebook.com', path: '{Object-ID}/photos' + '?access_token=' + ACCESS_TOKEN, headers: form.getHeaders(), } var request = https.request(options, function(res) { console.log(res, false, null); }); form.pipe(request); request.on('error', function(error) […]

从facebook使用nodejs和expression所有的相册

我需要使用nodejs和express来从facebook获取所有相册。我正在使用护照来validation用户身份。 passport.use(new FacebookStrategy( { clientID : FACEBOOK_APP_ID, clientSecret : FACEBOOK_APP_SECRET, callbackURL : FACEBOOK_CALL_BACK_URL, profile : true }, function(accessToken, refreshToken, profile, done) { FB_ACCESS_TOKEN = accessToken; process.nextTick(function() { console.log("FB_ACCESS_TOKEN : " + FB_ACCESS_TOKEN); return done(null, profile); }); })); 在callback中,我要求范围user_status,user_photos和offline_access app.get('/auth/facebook', passport.authenticate('facebook'), { scope : [ 'user_status', 'user_photos','offline_access'] }, function(req, res) { }); 获取我正在使用的所有相册 app.get('/albums', function(req, res) […]

PassportJS获取Facebook用户位置

我试图设定我的策略,以两种方式获得用户的家,而这两者都不起作用。 有没有人有PassportJS代码来获取用户的地址(只是城市和州)? 策略尝试“位置”和“地址”: profileFields: ['id', 'name','picture.type(large)', 'emails', 'displayName', 'location', 'address', 'about', 'gender'], 试图获得使用地址,如在这里看到的portablecontacts.net : user.facebook.location = profile.address.locality + ', ' profile.address.region;

Expressjs FBlogin不需要Passport.js或者everyauth

我一直在寻找几个小时,但没有护照或Everyauth无法find快递的Facebooklogin解决scheme。 有没有关于nodejs的服务器端oAuth 2.0 FBlogin的例子或教程? 还是有没有办法使用默认的快速会议,并让护照只处理初始authentication,而无需序列化/反序列化?

创buildOAuth API时的应用程序令牌/机密

背景:我正在使用node.js来表示创build一个API。 我已经在API服务器中以标准的用户/用户密钥/秘密方式实现了OAuth(与Twitter,Facebook等一样)。 我希望第三方连接到我的API,再次以与这些公共API相同的方式。 通常情况下,客户端将连接一个应用程序令牌/秘密(例如,您创build一个Facebook应用程序作为Facebook开发人员,这些给你)。 但是,有时候,客户端不能为应用程序提供秘密,因为代码是以不安全的方式实现的。 具体来说,我指的是Javascript库。 例如,开发人员不希望在Javascript代码中暴露他们的应用程序秘密,因为它是明文的,可以被恶意用户读取。 我注意到Facebook避免了这个问题。 开发人员只需要向Javascript库提供一个应用程序令牌(而不是秘密)。 我不明白如何为我的API提供类似的选项,而不会从根本上使我的库不安全。 也就是说,如果请求是由Javascript客户端库向API提出的,而没有提供安全的令牌/秘密,那么这些请求如何通过OAuth API进行身份validation? 在理智上,我能想到的最好的解决scheme是通过HTTPS连接在Javascript客户端库和API服务器之间进行某种令牌转换,以便为库返回一个秘密。 不过,我不确定如何确保这个切换,以防止恶搞。

Node-Webkit Facebook集成

我正在使用node-webkit构build一个newsreader-ish桌面应用程序 https://github.com/rogerwang/node-webkit 基本上是服务器和客户端。 我的facebook API的问题如下:我想让我的应用程序的用户login并向他们展示他们当前的贴子和这样的东西。 另外,我还有一些来自其他来源的消息,应该可以从这个用户那里得到。 整个应用程序是一个单页JS(更确切地说:咖啡脚本)与多个组件,硬redirect是不可能的。 API中显示的每个login可能性似乎都不适合我的types的应用程序。 什么是最好的方式来连接到Facebook,没有硬redirect,没有自己的URIredirect到?

Node.js – 从facebookgraphicsAPI获取我的帐户详细信息

我试图通过facebook图表api( graph.facebook.com/me?access_token=token )在node.js中获取我的Facebook帐户详细信息,但是我无法使用它: access_token = appid + '|' + appsecret 这是我的代码: var https=require('https'); var access_token = process.argv.slice(2)[0] + '|' + process.argv.slice(2)[1]; var options = { host: 'graph.facebook.com', path: '/me?access_token=' + access_token }; https.get(options,function(res){ var data = ''; res.on('data', function (chunk) { data += chunk; }); res.on('end', function() { console.log(data); }); }); 而我得到的错误: {“error”:{“message”:“一个活跃的访问令牌必须用来查询关于当前用户的信息”,“type”:“OAuthException”,“code”:2500}}