LinkedIn Gem Ruby:OAuth(permission_unknown)

时间:2013-07-26 12:32:54

标签: ruby gem linkedin

我正在尝试使用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

不确定从哪里开始。我试图找到失去的许可,但我不知所措。

思考?

2 个答案:

答案 0 :(得分:1)

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

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

@pin = @authorize_url.split("oauth_token=").last.strip

答案 1 :(得分:0)

我发现了这个问题。事实证明,request_token.authorize_url不会返回引脚。它只是为您提供了一个访问URL,您可以在其中进行身份验证并生成引脚。然后你必须将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并指示用户进行身份验证,然后将引脚输入应用程序。