Ruby on rails 401 Jawbone Up API和Ruby on Rails出现未经授权的错误

Ruby on rails 401 Jawbone Up API和Ruby on Rails出现未经授权的错误,ruby-on-rails,ruby,oauth,omniauth,httparty,Ruby On Rails,Ruby,Oauth,Omniauth,Httparty,我试图通过Omniauth、HTTParty和rubyonrails访问jawboneapi。我正在按照API文档的要求传递头授权=>Bearer:[token_here],但它仍然给了我一个401错误,我一辈子都不知道为什么。我能够通过omniauth成功获取令牌并将其存储到会话[:token],但API返回401个未经授权的令牌 API文档: 我已搜索堆栈溢出,但找不到解决此问题的方法。有什么问题吗 我的代码是: 会话\u controller.rb 数据处理器.rb class DataP

我试图通过Omniauth、HTTParty和rubyonrails访问jawboneapi。我正在按照API文档的要求传递头授权=>Bearer:[token_here],但它仍然给了我一个401错误,我一辈子都不知道为什么。我能够通过omniauth成功获取令牌并将其存储到会话[:token],但API返回401个未经授权的令牌

API文档:

我已搜索堆栈溢出,但找不到解决此问题的方法。有什么问题吗

我的代码是:

会话\u controller.rb 数据处理器.rb
class DataProcessorController{“Authorization”=>@Authorization_dp,“Accept”=>“application/json”}),除非会话[:token].nil?
结束
结束
results.html.erb
结果:

验证标头:

HTML文件的输出:
Result:{“meta”=>{“code”=>401,“error\u detail”=>“您必须登录才能执行该操作”,“error\u type”=>“authentication\u error”,“message”=>“Unauthorized”},“data”=>{}
Auth header:#4,:default_params=>{},:follow_redirects=>true,:parser=>HTTParty::parser,:connection_adapter=>HTTParty::ConnectionAdapter,:headers=>{“Authorization”=>“Bearer xxxxxxxxxxxxx token”\u herexxxxxxxxxxxxxxxxxxxx,“Accept”=>“application/json”},@last_uri=.@raw#request=\
您解决了这个问题吗


如果您查看其他错误字段,它可能会为您提供更多信息。就我而言,我得到的是“未经授权的范围”。我请求的范围中的项目没有包含在原始oauth请求中,因此我提供的令牌的范围有限。

首次授权用户时,请尝试更改范围。我使用了
scope=move\u read
并能够从
http://jawbone.com/nudge/api/v.1.1/users/@我/目标

你解决过这个问题吗?如果是,解决方案是什么?我也有类似的问题。。。
def create
auth_hash = request.env['omniauth.auth']

if session[:user_id]
    #if there's a session, then create the authorization
    User.find(session[:user_id]).add_provider(auth_hash)

else 
    auth = Authorization.find_or_create(auth_hash)
    session[:user_id] = auth.user.id
    session[:token] = auth.user.authorizations.first.token


end
redirect_to '/today'
end
class DataProcessorController < ApplicationController
  def today
    @current_user_dp = session[:user_id]
    @token_dp = session[:token]
    @authorization_dp = "Bearer " + @token_dp
    #@auth = "Bearer " + session[:current_user].authorizations.first.token unless session[:user_id].nil?
    @result = HTTParty.get('http://jawbone.com/nudge/api/v.1.1/users/@me/goals',
                           :headers => { "Authorization" => @authorization_dp, "Accept" => "application/json"}) unless session[:token].nil?

  end
end
<p>Result: <%= @result %></p>
<p>Auth header: <%= @result.request.inspect%></p>
Result: {"meta"=>{"code"=>401, "error_detail"=>"You must be logged in to perform that action", "error_type"=>"authentication_error", "message"=>"Unauthorized"}, "data"=>{}}

Auth header: #<HTTParty::Request:0x007fe446bb3320 @http_method=Net::HTTP::Get, @path=#<URI::HTTPS:0x007fe446bbb408 URL:https://jawbone.com/nudge/api/v.1.1/users/@me/goals>, @options={:limit=>4, :default_params=>{}, :follow_redirects=>true, :parser=>HTTParty::Parser, :connection_adapter=>HTTParty::ConnectionAdapter, :headers=>{"Authorization"=>"Bearer XXXXXXXXXTOKEN_HEREXXXXXXXXXXXXX", "Accept"=>"application/json"}}, @last_uri=#<URI::HTTPS:0x007fe446bba918 URL:https://jawbone.com/nudge/api/v.1.1/users/@me/goals>, @raw_request=#<Net::HTTP::Get GET>, @last_response=#<Net::HTTPUnauthorized 401 Unauthorized readbody=true>, @redirect=true>