尝试访问Jawbone API(RoR)时出现身份验证错误

时间:2014-06-04 02:23:58

标签: ruby-on-rails httparty jawbone

我正在尝试使用omniauth + jawbone在我的Rails应用中访问Jawbone API。我有一个按钮,为用户启动OAuth登录,我为该用户创建了一个用户模型,在我的数据库上有一个令牌和一个刷新令牌。 (看起来像Jawbone的OAuth正在工作,因为我得到了用户的信息)。

然后我用HTTParty查询Jawbone API,并在用户通过Jawbone登录后向我提供用户令牌,但是我收到以下错误:

{"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 documentation,但似乎无法找到答案。在Jawbone文档中,它表示身份验证错误意味着“请求需要经过身份验证的用户,并且没有用户登录”。那么即使我现在有一个令牌,通过OAuth登录也不会实际登录它们?

感谢您的帮助!我一直在努力解决这个问题。

2 个答案:

答案 0 :(得分:1)

对于那些正在挣扎的人,它不是

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

正确的标题是

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

这是一个有效的code

答案 1 :(得分:0)

您可以尝试此{ "Authorization: Bearer " => "#{token}"}

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