Ruby on rails 来自Rails Heroku的Facebook开放图
我整天都在解决这个问题,可能真的需要一些意见 我在Heroku Cedar上运行了一个Rails应用程序(3.1.3),试图用gem fb_Graph(2.4.0)发布一些Facebook开放图操作 这是我的密码Ruby on rails 来自Rails Heroku的Facebook开放图,ruby-on-rails,ruby,facebook-graph-api,heroku,Ruby On Rails,Ruby,Facebook Graph Api,Heroku,我整天都在解决这个问题,可能真的需要一些意见 我在Heroku Cedar上运行了一个Rails应用程序(3.1.3),试图用gem fb_Graph(2.4.0)发布一些Facebook开放图操作 这是我的密码 begin app = FbGraph::Application.new(ENV['facebook_app_id']) me = FbGraph::User.me(user.facebook_access_token) logger.info "Facebo
begin
app = FbGraph::Application.new(ENV['facebook_app_id'])
me = FbGraph::User.me(user.facebook_access_token)
logger.info "Facebook: User #{user.name} reviewing game #{game_url(review.game)}"
action = me.og_action!(
app.og_action(:review),
:game => game_url(review.game),
:content => review.review,
:rating => review.rating
)
rescue Exception => exc
logger.error "Failed to publish review #{review.id} to facebook #{user.facebook_auth}"
logger.error "Facebook error msg: #{exc.message}"
end
如果我转到应用程序中尝试运行此代码的页面,它将失败并显示以下消息
FbGraph::InvalidRequest (Exception :: Could not retrieve data from URL.)
但是,如果我想在何处打开Heroku控制台,Heroku运行控制台
,然后手动输入代码,它就可以完美地工作
我的第一个想法是game\uURL(review.game)
哪里该怪,但是在添加日志消息之后,我确信它返回了正确的url。而且,当我通过heroku控制台手动运行它时,整个过程都能正常工作,因此它确认URL是可访问的,并传递所请求的数据
非常感谢您对此的任何反馈或经验。下面的链接似乎表明这与超时有关,尽管尚未给出实际的解决方案 您可能还需要跟踪上述链接的答案。解决了它 实际上真的很愚蠢。我的Heroku应用程序中只有一个web dyno。因为我唯一的网络dyno是在做Facebook的API调用,所以没有dyno来响应Facebook的回调。你至少需要2个才能让它工作 代码在heroku控制台中工作的原因很简单,因为web dyno没有忙于处理我的请求
我可能会在将来将该代码推到工作队列中,因为这似乎更合适,并让一个工人dyno处理Facebook发布。第二个dyno的替代方案可能是尝试-这将允许您的应用程序在第一个呼叫被阻止时为第二个呼叫提供服务 这些文章提供了一些关于开始使用Unicorn的有用细节: