0

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

我试图弄清楚如何通过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::Errors::UnauthorizedError: (401): [未授权]。OAuth 请求中使用的令牌无效。xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>

我在这里做错了什么?

4

1 回答 1

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

在您的回调 url 中,您应该保存令牌以供将来请求。

祝你好运!

于 2013-06-25T18:24:53.963 回答