我正在尝试使用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
不确定从哪里开始。我试图找到失去的许可,但我不知所措。
思考?
答案 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并指示用户进行身份验证,然后将引脚输入应用程序。