我在我的Ruby on Rails应用程序中使用了FbGraph和Omniauth。我使用服务器端方法获取用户的长期(60天)访问令牌,然后将其存储在会话变量中。在尝试访问以下代码中的API时:
token = session[:facebook_token]
user = FbGraph::User.me(token)
user = user.fetch
我得到了OAuthException :: Invalid OAuth access token
。但是,当我添加puts token
并将打印的令牌复制到Facebook Graph API Explorer (在线工具)中时,我没有遇到任何问题,令牌被报告为有效...我甚至可以通过FbGraph进行失败的API调用。
我使用的是JavaScript软件开发工具包中的短期令牌(2小时),同样的代码运行良好,所以迁移到长期令牌会把一切都搞砸。
发布于 2013-07-16 02:37:08
首先,您如何设置session[:facebook_token]
?这听起来像是字符编码问题,甚至可能只是额外的空格。
你为什么不试试user = FbGraph::User.me(token.strip)
呢
此外,您还可以像这样更新(扩展)访问令牌本身:https://github.com/nov/fb_graph#extend-access-token-lifetime
https://stackoverflow.com/questions/16703780
复制相似问题