首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >put_connections()到Koala中的Facebook图在很长时间延迟后失败

put_connections()到Koala中的Facebook图在很长时间延迟后失败
EN

Stack Overflow用户
提问于 2012-06-13 02:51:22
回答 2查看 2.4K关注 0票数 5

我使用的是Rails 3.2.5和Koala 1.3.0 (不是最新版本,因为它甚至拒绝运行Heroku的Facebook应用程序示例)。Web服务器是Unicorn。

当我试图使用put_connections()发布到时间线时:

代码语言:javascript
运行
复制
@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"

控制器暂停12秒,然后才得到异常:

代码语言:javascript
运行
复制
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}}):

我使用调试工具:http://developers.facebook.com/tools/debug进行了测试,它没有发现登录到第2行的URL有任何错误。

我的web服务器记录了来自Facebook的GET,并返回200 OK。然后,Facebook会发出更多的请求来获取图像,这也会得到200 OK。

我正在测试我的应用程序的测试用户FYI。

更新

这似乎是一个OpenGraph问题。这个问题重现给我:https://developers.facebook.com/bugs/213733412077729

基本上,只有在我在调试器上测试它一次之后,这个帖子才是成功的!以前有人经历过吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-13 09:03:19

弄明白了。当然调试器的事情没有意义。它之所以奏效,是因为Facebook当时对他们的缓存有我的看法。

这是一个典型的重入问题(我不敢相信我必须在Rails中处理这个问题!) -- Facebook的POST API是同步的,只有在它调用回我的显示控制器之后才会返回。但是,由于我只有一个工作线程,所以没有人为请求提供服务,因此需要挂起。

修复方法是在线程中异步调用API。

代码语言:javascript
运行
复制
Thread.new {
    @fbgraph.put_connections("me", "myapp:view", :room => url_for(@room))
}
票数 12
EN

Stack Overflow用户

发布于 2012-12-05 22:24:52

我和您有类似的问题,但是get请求管理超过600个对FB的调用(总时间> 16s)。

显式声明字段似乎有效。

代码语言:javascript
运行
复制
graph = @FBGraph.get_object("#{user.fb_user_id}?fields=id,name,username,picture,link")

有关更多信息,请参见堆栈溢出HERE中的Q/A

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11007616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档