我使用的是ruby-1.8.7-p302/Rails 2.3.11.我正在尝试使用FQL(Facebook API)获取链接的统计信息.这是我的代码:
def stats(fb_post_url)
url = BASE_URI + "?query=#{URI.encode("select like_count from link_stat where url=\"#{fb_post_url}\"")}"
parsed_url = URI.parse(url)
http = Net::HTTP.new(parsed_url.host, parsed_url.port)
request = Net::HTTP::Get.new(parsed_url.request_uri)
response = http.request(request)
response.inspect
end
Run Code Online (Sandbox Code Playgroud)
这是错误:
EOFError: end of file reached
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:135:in `sysread'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:135:in `rbuf_fill'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/timeout.rb:67:in `timeout'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/timeout.rb:101:in `timeout'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:126:in `readline'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:2028:in `read_status_line'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:2017:in `read_new'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:1051:in `request'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:1037:in `request'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:543:in `start'
from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/http.rb:1035:in `request'
from /home/rahul/Work/Radr/lib/fb_stats.rb:13:in `stats'
from (irb):10 …
Run Code Online (Sandbox Code Playgroud) 我们对facebook的图表API进行的通话数量有限制吗?如果它在那里那么我们每天可以为每个应用程序拨打多少电话?
我正在使用Facebook API获取给定URL的类似/共享计数.奇怪的是,返回结果似乎很不一致.例如,此页面返回结果:
https://api.facebook.com/method/fql.query?query=select%20total_count,like_count,comment_count,share_count,click_count%20from%20link_stat%20where%20url='http://www.groupon.com/deals/seattlehelitourscom-by-classic-helicopter-corp'&format=json
然而,这个不是:
https://api.facebook.com/method/fql.query?query=select%20total_count,like_count,comment_count,share_count,click_count%20from%20link_stat%20where%20url='http://www.livingsocial.com/deals/278194-sunset-kayaking-hot-chowder'&format=json
第二页显然有一个共享计数,当我检查页面的HTML时,用于共享的URL是我在上面的API请求中放置的URL.但是,API不响应任何数量的喜欢或分享的任何计数信息.
关于为什么API可能会响应某些URL而不是其他URL的任何线索?
我已将Facebook"赞"按钮集成到我网站的很多页面中.我想在列表中显示我网站上最"喜欢"的页面,但我无法弄清楚如何在一个请求中从Facebook获取该数据.到目前为止,我已经能够使用以下FQL查询获得单个页面的"Like"计数:
Run Code Online (Sandbox Code Playgroud)SELECT share_count, like_count, comment_count, total_count FROM link_stat WHERE url="http://www.mysite.com/some-page"
但是,在我的网站上逐个获取每个页面的计数并不可行.除了有大量的页面,正在不断创造新的页面(新用户配置文件,新的博客,博客文章等),这将使越来越完整的统计我的网站复杂的过程,会涉及调用Facebook的API数千次.
有没有办法计算我的域中的每个页面在一个请求中被"喜欢"的次数?或者只是前10个最"喜欢"的页面,或类似的东西?
我想立即在我的Facebook应用程序的Feed视图中显示大型照片.是否可以使用一个API调用从流/源中获取大型照片src URL?照片ID会在流/ Feed中返回,当然可以在另外的FQL或图形API调用中提供此照片ID,以检索有关该照片的所有信息.但是,有没有办法使用多个查询或批量调用来使用一个API往返来获取更大的照片src url?
我正在寻找一种使用新的Open Graph API执行FQL(facebook查询语言)查询的方法.
有谁知道我怎么做到这一点?
通过以下优秀示例找到答案:http: //code.google.com/p/facebook-cpp-graph-api/
可能重复:
检索Facebook粉丝名称
我想获得一个喜欢页面或兴趣的facebook用户列表.
像' SELECT user_id FROM like WHERE object_id=113970468613229
'这样的FQL 不起作用.
有没有办法做到这一点?
我们使用facebook评论插件在我们的网站上发表评论.
为了缓和这些问题,我们使用此工具:https://developers.facebook.com/tools/comments
但是,我们希望构建自己的工具来调节这些注释,并将其集成到我们现有的软件中.
我找不到这样做的正确方法.我经过几个小时的研究后发现的唯一方法是这个FQL查询:
select post_fbid, fromid, object_id, text, time from comment where object_id in (select comments_fbid from link_stat where url ='URL_HERE')
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为我们有数千个不同的URL,每次都无法查询每个URL,看看是否有任何新的评论.
我需要一种方法来获取所有(新)评论,只需输入我们的app_id,域或类似的东西
我怎样才能做到这一点?
我目前遇到了Facebook的实时API问题.
我希望订阅用户个人资料中的一些内容,包括他们在音乐,书籍,电视和电影类别中的"喜欢".
当我通过FQL和Graph查询时,我得到了正确的信息,但是当这些条目在用户配置文件上发生更改时,Facebook没有ping我的通知端点.
订阅和验证都很好.以下是来自我的App的Facebook的有效订阅:
["object"]=> string(4) "user"
["callback_url"]=> <correct callback URL>/facebook/update/"
["fields"]=>array(11) {
[0]=> string(13) "birthday_date"
[1]=> string(5) "books"
[2]=> string(10) "first_name"
[3]=> string(7) "friends"
[4]=> string(5) "likes"
[5]=> string(6) "movies"
[6]=> string(5) "music"
[7]=> string(4) "name"
[8]=> string(3) "sex"
[9]=> string(2) "tv"
[10]=> string(8) "username"
}
["active"]=> bool(true)
Run Code Online (Sandbox Code Playgroud)
起初我没有订阅,likes
但补充说,看看它是否解决了问题......它没有.
该文件说:
以下是您可以订阅的用户连接列表:供稿,朋友,活动,兴趣,音乐,书籍,电影,电视,喜欢,签到
我得到通知,当任何数据变化(包括friends
),这仅仅是music
,books
,movies
和television
.
也许更奇怪的是,当我"喜欢"一个随机的Facebook页面(即使用类似按钮,而不是将其添加到我的个人资料中的字段)时,我会在该like
字段上触发通知.当我不像同一页上,我得到的通知触发likes
,music
,books
,movies
和television
! …
我一直在搜索文档一段时间,似乎无法找到实现这一目标的方法.这些信息是公开的(在Facebook页面上......链接显示"查看所有#份额")但我似乎无法通过FQL或图形API找到访问此信息的方法.
我知道我可以获得给定帖子的喜欢列表:
https://graph.facebook.com/87236249496_134765166623967/likes
Run Code Online (Sandbox Code Playgroud)
我们的目标是获得一份已经分享过的人的名单 - 但是对于股票来说似乎没有同样的东西.我错过了什么吗?