我正在构建一个应用程序,从多个社交媒体获取状态更新.已经有Twitter的工作就像一个魅力.但现在我必须使用Facebook的Graph API,神秘的东西不断涌现.就像一个帖子包含一条消息或一个故事的事实(据我所知,这两者都不是).我没有设法找到两者之间的区别.
我认为它可能与帖子的类型有关,但我不知道类型链接,状态,照片和视频都可以包含消息或故事.然后是swf,我只看到了一条消息.
谁能告诉我这里有什么交易?唯一的区别是,一个是真实的状态更新而另一个只是"喜欢"或类似的东西?
示例JSON:
{
"id" : "<<Some ID>>",
"from" : {
"name" : "<<A Friend>>",
"id" : "<<Some ID>>"
},
"message" : "Maakt zich op voor ronde twee in de presentatiedienst bij #omropfryslan Zometeen tussen vier en zes live!",
"icon" : "https://fbcdn-photos-a.akamaihd.net/photos-ak-snc7/v85006/23/<<Some ID>>/app_2_<<Some ID>>_7567.gif",
"actions" : [{
"name" : "Comment",
"link" : "https://www.facebook.com/<<Some ID>>/posts/<<Some ID>>"
}, {
"name" : "Like",
"link" : "https://www.facebook.com/<<Some ID>>/posts/<<Some ID>>"
}, {
"name" : "@<<A Friend>> on Twitter",
"link" : "https://twitter.com/<<A Friend>>?utm_source=fb&utm_medium=fb&utm_campaign=<<A Friend>>&utm_content=<<Some …
Run Code Online (Sandbox Code Playgroud) 我有一个主意,但我有一些问题...如何将Facebook用户连接到节点应用程序-socket.io
我创建了一个socket.io聊天,但现在想允许Facebook用户聊天来创建类似Facebook群组CHAT的聊天。我认为这个主意很好?
这是我的聊天代码:
服务器端文件-app.js
var app = require('express').createServer()
var io = require('socket.io').listen(app);
app.listen(8080);
// routing
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
// usernames which are currently connected to the chat
var usernames = {};
// rooms which are currently available in chat
var rooms = ['room1','room2','room3'];
io.sockets.on('connection', function (socket) {
// when the client emits 'adduser', this listens and executes
socket.on('adduser', function(username){
// store the username in the socket session for this client
socket.username = username;
// …
Run Code Online (Sandbox Code Playgroud) 如果我使用服务器端流来验证用户并获取访问令牌,我如何在JavaScript SDK中设置该访问令牌并使用它来从客户端进行调用?
我正在向Facebook提出以下简单请求.我的目标是获取所有用户相册的名称:
[[AppDelegate sharedDelegate].facebook requestWithGraphPath:@"me/albums" andDelegate:[AppDelegate sharedDelegate]];
Run Code Online (Sandbox Code Playgroud)
然后,我从服务器获得JSON响应,如下所示:
data = (
{
"can_upload" = 1;
count = 4;
"cover_photo" = 321491374598618;
"created_time" = "2012-06-04T21:46:23+0000";
from = {
id = 100002132746588;
name = "Owner....";
};
id = 321491371265285;
link = "http://www.facebook.com/album.php?fbid=321491371265285&id=100002132746588&aid=73680";
name = "Photos";
privacy = custom;
type = normal;
"updated_time" = "2012-06-04T22:08:39+0000";
},
{
"can_upload" = 0;
count = 1;
"cover_photo" = 318401854907570;
"created_time" = "2012-05-31T00:00:35+0000";
description = "Which Friend Stalks You the Most?";
from = {
id = 100002132746588;
name …
Run Code Online (Sandbox Code Playgroud) 我正在使用Facebook Connect和Facebook Graph API在用户注册我的网站时获取用户的电子邮件地址.这在99%的时间内完美地工作,但有时当我在给予我的网站许可(包括电子邮件许可)后查询用户数据的Graph API时,Facebook会返回一个大号(例如14036774009)作为该人的电子邮件地址.
到目前为止,数字总是不同的,总是11位数,并且来自Graph API的所有其他用户数据都是有效的.我从来没有能够用我控制的Facebook帐户复制这个问题.
在某些方面,大量的数字让我想起Facebook为那些选择给第三方应用程序提供转发地址而不是主要地址的人生成的随机代理电子邮件地址(代理地址看起来像这样:apps + 148742679521093.617890126.8a2b26037e1ccd06bb81aaec5925f4c7 @ proxymail.facebook.com)
任何人都可以解释这种行为或解决方法(并始终获得有效的电子邮件地址)?
我正在使用Rails 3.2.5和Koala 1.3.0(不是最新的,因为最新的拒绝运行来自Heroku的样本Facebook应用程序).Web服务器是Unicorn.
当我尝试使用put_connections()POST到时间轴时:
@fbgraph = Koala::Facebook::API.new(session[:access_token])
logger.debug "put_connections(#{url_for @room}), start"
@fbgraph.put_connections("me", "myapp:view", :room => url_for(@room))
logger.debug "put_connections(), end"
Run Code Online (Sandbox Code Playgroud)
在获得异常之前,控制器会停顿12秒:
Completed 500 Internal Server Error in 12075ms
Koala::Facebook::APIError (HTTP 500: Response body: {"error":{"type":"Exception","message":"Could not retrieve data from URL.","code":1660002}}):
Run Code Online (Sandbox Code Playgroud)
我使用调试工具进行了测试:http://developers.facebook.com/tools/debug ,它发现第2行中记录的URL没有错误.
我的Web服务器从Facebook IP记录GET并返回200 OK.然后,Facebook IP会提出更多请求以获取图像,这也是200 OK.
我正在我的应用程序的测试用户FYI上测试这个.
UPDATE
这似乎是一个OpenGraph问题.这个问题为我重现:https://developers.facebook.com/bugs/213733412077729
基本上只有在我在调试器上测试一次后,POST才会成功!以前有人经历过吗?
在参照:
http://developers.facebook.com/roadmap/offline-access-removal/#extend_token
我的代码看起来像这样:
fb = Koala::Facebook::API.new(access_token)
fb.graph_call("/oauth/access_token", {"client_id" => app_id, "client_secret" => app_secret, "grant_type" => "fb_exchange_token", "fb_exchange_token" => access_token })
Run Code Online (Sandbox Code Playgroud)
虽然返回值包含扩展标记,但它抛出MultiJson :: DecodeError
MultiJson::DecodeError: 387: unexpected token at 'access_token=long-lived_token&expires=5184000]'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/json-1.6.1/lib/json/common.rb:148:in `parse'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/json-1.6.1/lib/json/common.rb:148:in `parse'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/multi_json-1.0.3/lib/multi_json/engines/json_gem.rb:13:in `decode'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/multi_json-1.0.3/lib/multi_json.rb:65:in `decode'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/koala-1.3.0/lib/koala/api.rb:61:in `api'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/koala-1.3.0/lib/koala/api/graph_api.rb:421:in `graph_call'
from (irb):7
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/railties-3.1.3/lib/rails/commands/console.rb:45:in `start'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/railties-3.1.3/lib/rails/commands/console.rb:8:in `start'
from /usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/gems/railties-3.1.3/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我怀疑]
导致错误的结局.我不确定这是Facebook错误还是错误处理.感谢有人可以帮助我.谢谢!
我也尝试使用Net :: HTTP.get(uri).但得到了以下错误.
Errno::ECONNRESET: Connection reset by peer
from /usr/local/rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/protocol.rb:135:in `read_nonblock' …
Run Code Online (Sandbox Code Playgroud) 在我的facebook阅读器应用程序中,我的图片有时候没有显示,这是因为fbexternal-a.akamaihd.net/safe_image.php不会呈现它.
我从下面的JSON中获取了链接,它是JSON回复的相关部分.
"message": "http://www.youtube.com/watch?v=RJer7-eAy3o",
"picture": "https://fbexternal-a.akamaihd.net/safe_image.php?d=AQCMr5crfpv0x3lm&w=130&h=130&url=http\u00253A\u00252F\u00252Fi3.ytimg.com\u00252Fvi\u00252FRJer7-eAy3o\u00252Fmqdefault.jpg",
"link": "http://www.youtube.com/watch?v=RJer7-eAy3o",
"source": "http://www.youtube.com/v/RJer7-eAy3o?version=3&autohide=1&autoplay=1",
"name": "Dougie MacLean - Broken Wings",
"caption": "www.youtube.com",
"description": "Dougie MacLean's 'Broken Wings' performed with strings at The Perthshire Amber Festival, October 2005.",
"icon": "https://s-static.ak.facebook.com/rsrc.php/v2/yj/r/v2OnaTyTQZE.gif"
Run Code Online (Sandbox Code Playgroud)
问题在于这个https://fbexternal-a.akamaihd.net/safe_image.php?d=AQCMr5crfpv0x3lm&w=130&h=130&url=http\u00253A\u00252F\u00252Fi3.ytimg.com\u00252Fvi\u00252FRJer7-eAy3o\u00252Fmqdefault.jpg
部分.
如果我访问http://i3.ytimg.com/u00252Fvi/RJer7-eAy3o/mqdefault.jpg,它会显示正确的图像,因此不会出现问题.我做错了什么,或者safe_image.php
只是错误的车,我应该只删除它的原始网址并使用它吗?
Tnx和迎接,Sjaak
我刚开始使用Facebook Graph API.
如何通过1个FB.api调用来调用多个属性?现在,我有
FB.api('/me', function(me){
if (me) {
var myEmail = me.email;
var myID = me.id;
var myFirst_name = me.first_name;
//Other attributes
}
});
Run Code Online (Sandbox Code Playgroud)
和
FB.api('/me/friends',{ fields: 'name,id' }, function(response){
var friends = response.data;
}
});
Run Code Online (Sandbox Code Playgroud)
如何将两个api调用合并为一个,比如说只有1个FB.api()
调用?
所有回复都会真的很有帮助.
javascript javascript-events facebook-graph-api facebook-javascript-sdk
我目前正在开发一个Android应用程序,它使用Facebook图形API来根据用户的位置获取页面/位置.我还希望按类别过滤结果,例如餐馆.现在我只是在寻找名为"餐厅"是这样的: https://graph.facebook.com/search?q=restaurant&type=place¢er=37.76,-122.427&distance=1000
问题是它不会找到没有名称"restaurant"的页面/地方,它也会返回与餐馆没有任何关系的地方.我也有语言问题,在非英语国家,我的搜索将完全失败.
我正在考虑的一个可能的解决方案是获取范围内的所有位置,并在我的应用程序中解析它们的类别或名称.显然这会给我的应用带来很多开销.
我想知道是否有更好的解决方案,比如使用FQL来获得过滤结果?