TLK*_*TLK 3 ruby exception-handling facebook-graph-api ruby-on-rails-3 koala
也许是初学者问题:
我正试图通过考拉来检查我的用户权限.在某些情况下,我会被抛出错误.所以我只想抓住它并重定向以重新进行身份验证.
def check_facebook_permissions
if token = current_user.try(:authentications).find_by_provider('facebook').try(:token)
graph = Koala::Facebook::API.new(token)
permissions = graph.get_connections('me','permissions')
session[:facebook] = {}
session[:facebook][:ask_publish_actions] = true if permissions[0]['publish_actions'] != true && permissions[0]['publish_stream'] != true
end
rescue_from Koala::Facebook::APIError
# Do something funky here
end
Run Code Online (Sandbox Code Playgroud)
我觉得这很简单,但我从来没有打过我的救援.相反,我得到:
Koala::Facebook::APIError (OAuthException: Error validating access token: Session has expired at unix time 1324026000. The current unix time is 1324352685.):
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
rescue_from
它不是Ruby的语法结构rescue
- 它是一个普通的函数,你需要一个块来使用它.在你的代码中,没有给出任何代码,rescue_from
执行并有效地跳过代码 - 之后的内容与之前引发的任何异常无关(就像你放置任何其他函数一样puts
,而不是rescue_from
).
请参阅此处的rescue_from
使用示例.
要使这段代码有效,你需要vanilla Ruby rescue
:
rescue Koala::Facebook::APIError => e
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1954 次 |
最近记录: |