gpt4 book ai didi

ruby-on-rails - 在很长的延迟后,考拉中的 Facebook 图的 put_connections() 失败

转载 作者:行者123 更新时间:2023-11-30 05:23:35 25 4
gpt4 key购买 nike

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

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

@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"

Controller 在出现异常前停顿 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}}):

我用调试工具测试过:http://developers.facebook.com/tools/debug并且它发现第 2 行中记录的 URL 没有错误。

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

我正在对我的应用程序的测试用户进行测试,仅供引用。

更新

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

基本上是我在调试器上测试了一次POST才成功!以前有人遇到过这种情况吗?

最佳答案

想通了。当然,调试器的事情没有意义。它之所以有效,是因为 Facebook 然后可以查看我对他们缓存的看法。

这是一个典型的重入问题(我不敢相信我必须在 Rails 中处理它!)——Facebook 的 POST API 是同步的,它只在回调到我的显示 Controller 后返回。但是因为我只有 1 个工作线程,所以没有人为请求提供服务,因此挂起。

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

Thread.new {
@fbgraph.put_connections("me", "myapp:view", :room => url_for(@room))
}

关于ruby-on-rails - 在很长的延迟后,考拉中的 Facebook 图的 put_connections() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11007616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com