2

我正在尝试使用omniauth + 颚骨访问我的 Rails 应用程序中的 Jawbone API 。我有一个为用户启动 OAuth 登录的按钮,我为这个用户创建了一个用户模型,并在我的数据库上使用了一个令牌和一个刷新令牌。(似乎 Jawbone 的 OAuth 正在工作,因为我得到了用户的信息)。

然后,在用户通过 Jawbone 登录后,我使用 HTTParty 使用给我的用户令牌查询 Jawbone API,但我收到以下错误:

{"meta"=>{"code"=>401, "error_detail"=>"You must be logged in to perform that action", "error_type"=>"authentication_error", "message"=>"Unauthorized"}, "data"=>{}}

我用来查询 Jawbone API 的代码是:

    token = current_user.token
    @result = HTTParty.get('https://jawbone.com/nudge/api/v.1.0/users/@me/moves',
                           :headers => { "Authorization: Bearer" => "#{token}"}
                          )

我一直在搜索Jawbone API 文档,但似乎找不到答案。在 Jawbone 文档中,它说身份验证错误意味着“请求需要经过身份验证的用户并且没有用户登录。” 那么即使我现在有一个令牌,通过 OAuth 登录是否实际上也没有登录它们?

谢谢您的帮助!我一直在为此苦苦挣扎。

4

2 回答 2

1

对于那些正在挣扎的人来说,这不是

{ "Authorization: Bearer" => "{{token}}" }

正确的标题是

{ "Authorization" => "Bearer {{token}}" }

这是一个工作代码

于 2015-07-13T11:15:03.247 回答
0

你可以试试这个{ "Authorization: Bearer " => "#{token}"}

我在 Bearer 之后添加了一个额外的空间。我遇到了这样的问题,我不得不增加一个空间。您应该使用更新的 api 的另一件事是:“ https://jawbone.com/nudge/api/v.1.1/users/@me/moves

于 2014-06-11T10:05:28.637 回答