3

我在我的 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 SDK 中的短期令牌(2 小时),并且相同的代码运行良好,因此转向长期令牌的一些事情搞砸了一切。

4

1 回答 1

0

你一开始是怎么设置session[:facebook_token]的?这听起来像是字符编码问题,甚至可能只是额外的空格。

你为什么不试试user = FbGraph::User.me(token.strip)

此外,您可以像这样更新(扩展)访问令牌本身:https ://github.com/nov/fb_graph#extend-access-token-lifetime

于 2013-07-15T18:37:07.687 回答