pengwynn linkedin gem的授权错误

时间:2013-06-24 17:12:04

标签: ruby-on-rails-3 linkedin

我想指出我是新手,而不是开发者,所以我可能会错过这里的一些基本步骤。

我正在试图弄清楚如何通过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>

我在这里弄错了什么?

1 个答案:

答案 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

在您的回调网址中,您应该保存令牌以备将来请求。

祝你好运!