我正在尝试使用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登录也不会实际登录它们?
感谢您的帮助!我一直在努力解决这个问题。
答案 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”