0

更新:请参阅底部的解决方案。

我是 Ruby 和 Heroku 开发的新手。我在 Facebook 上部署了一个带有 Heroku/Ruby 托管的应用程序。Heroku 部署的默认 Ruby/FB 应用程序在 Heroku 上运行时运行良好。但是,当我克隆我的 heroku 应用程序以在本地运行时,我开始遇到问题。

第一个问题是通过添加require "rubygems"到我的 app.rb 的顶部来解决的,然后通过添加set :protection, :except => :frame_options到 app.rb 来解决 Facebook iFrame 问题。

现在我的问题是,在这些行运行之后,当还没有 access_token 时,@app 为零。

@graph  = Koala::Facebook::API.new(session[:access_token])

# Get public details of current application
@app  =  @graph.get_object(ENV["FACEBOOK_APP_ID"])

这会导致模板渲染因以下错误而中断:

NoMethodError - undefined method `[]' for false:FalseClass:
/Users/todd-chapman/Documents/vivid-winter-3317/views/index.erb:7:in `evaluate_source'

我究竟做错了什么?我是否错过了设置本地开发的步骤?

附加信息:这可能与在我的 Facebook 应用程序中启用沙盒模式有关,以便我可以在没有 SSL 的情况下进行本地开发。

谢谢!

解决方案:

我没有足够的代表在提出问题的 8 小时内回答我自己的问题,所以这是我找到的解决方案。

由于我的 Facebook 应用程序处于沙盒模式以支持非 SSL 开发,因此调用@graph.get_object(ENV["FACEBOOK_APP_ID"])将不起作用,因为沙盒模式应用程序只能由 Facebook 应用程序管理员访问。因此返回 nil 结果。

长期解决方案是设置 SSL 反向代理,这样我就可以在我的 Facebook 应用程序关闭沙盒模式时进行本地开发。

4

1 回答 1

0

解决方案:

由于我的 Facebook 应用程序处于沙盒模式以支持非 SSL 开发,因此对 @graph.get_object(ENV["FACEBOOK_APP_ID"]) 的调用将不起作用,因为沙盒模式应用程序只能由 Facebook 应用程序管理员访问。因此返回 nil 结果。

长期解决方案是设置 SSL 反向代理,这样我就可以在我的 Facebook 应用程序关闭沙盒模式时进行本地开发。这里有一篇很好的文章:http: //www.subelsky.com/2012/01/my-twelve-factor-app-development.html

于 2012-07-08T14:02:59.603 回答