我想指出,我是一个新手,而不是开发人员,所以我可能会错过一些基本步骤。
我正试图弄清楚如何通过omniauth-linkedin-gem进行授权,并通过pengwynn'linkedin'gem查询Linkedinneneneba API。
我可以通过oauth连接用户,创建设计用户条目等等,一切都很好。
当我试图查询API时,问题就会出现,特别是我有兴趣获得用户的技能列表。我的users_controller.rb 下有这段代码
def show
@user = User.find(params[:id])
token = @user.access_token
secret = @user.access_secret
client = LinkedIn::Client.new(ENV["LINKEDIN_KEY"], ENV["LINKEDIN_SECRET"])
client.authorize_from_access(token, secret)
raise client
end
我提升客户端只是为了与新创建的客户端玩一玩,不幸的是,当查询client.profile时,我得到401错误:
领英::错误::未授权错误:(401):[未授权]。OAuth请求中使用的令牌无效。xxxxxxxx-xxxx-xxxx.xxxx-xxxxxxxxx>
我做错了什么?
在raise client
之前,您应该提供权限。你应该重定向到:
redirect_to request_token.authorize_url
例如:
def show
client = LinkedIn::Client.new(ENV["LINKEDIN_KEY"], ENV["LINKEDIN_SECRET"])
request_token = client.request_token({:oauth_callback => "callback url here"}, :scope => "rw_nus r_fullprofile r_emailaddress")
client.authorize_from_access(request_token.token, request_token.secret)
redirect_to request_token.authorize_url
end
在您的回调url中,您应该保存令牌以备将来请求。
祝你好运!