1

我正在尝试使用 LinkedIn gem 访问 LinkedIn。我似乎无法获得访问权限。

我的代码是这样的:

@client = LinkedIn::Client.new(API_KEY, SECRET)
@rtoken = client.request_token.token
@rsecret = client.request_token.secret
puts "token: #{@rtoken} secret #{@rsecret}"
@authorize_url = client.request_token.authorize_url
puts "authorize url: #{@authorize_url}"
@pin = @authorize_url.split("oauth_token=").last.strip
puts "pin #{@pin}"
@keys = @client.authorize_from_request(@rtoken, @rsecret, @pin)
@client.authorize_from_access(@keys)

这会产生错误:

token: sdklghsdgksdghskdhg secret shdlgkshdgshsdk
authorize url: https://www.linkedin.com/uas/oauth/authorize?oauth_token=sdkghskldghsdkg
pin fslkdghskdghdsgkhsdkhg
OAuth::Problem: permission_unknown

不太确定从哪里开始。我试图找出缺少什么权限,但我不知所措。

想法?

4

2 回答 2

1

我自己刚开始玩这个。我遇到了同样的问题,除非我手动将授权 URL 粘贴到我的浏览器中,然后单击接受以允许对我的帐户请求的权限。然后在我为 authorize_from_request 调用输入的屏幕上打印一个 pin。

因此,您的代码中的这一行是不正确的 - URL 的最后一部分是README指示的 generate_token,而不是 pin。我不确定以编程方式执行此操作。

@pin = @authorize_url.split("oauth_token=").last.strip
于 2013-08-04T17:27:23.653 回答
0

我发现了这个问题。事实证明 request_token.authorize_url 没有返回 pin。它只是给你一个 URL 来访问,你可以在其中进行身份验证和生成 pin。然后,您必须将 pin 复制到您的应用程序中。一个更优雅的解决方案是:

puts request_token.authorize_url
puts "Access the URL above. Authenticate. Enter the PIN here:"
pin = gets.strip
access_keys = client.authorize_from_request(rtoken, rsecret, pin)

这会打印 URL 并指示用户进行身份验证,然后将 pin 输入到应用程序中。

于 2016-12-09T15:58:12.223 回答