我想指出我是新手,而不是开发者,所以我可能会错过这里的一些基本步骤。
我正在试图弄清楚如何通过omniauth-linkedin gem授权并通过pengwynn' linkedin'gem查询Linkedin 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错误:
LinkedIn ::错误:: UnauthorizedError:(401):[未经授权]。 OAuth请求中使用的令牌无效。 XXXXXXXXXXXX-XXXXXXXX-XXXXXXXXXXXX>
我在这里弄错了什么?
答案 0 :(得分:0)
在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
在您的回调网址中,您应该保存令牌以备将来请求。
祝你好运!