2010-04-10 2 views
4

J'essaie d'obtenir la clé d'accès mais je ne peux pas le faire fonctionner. `` Request_token.get_access_token is giving me 401 Non autorisé (OAuth :: non autorisée) error. I copy the authorize_url into my browser, allow the application, I receive some kind of PIN from twitter but after hitting enter in my script I always get 401 error. I did some search and I found this helped access_token = request_token.get_access_token (: oauth_verifier => params [: oauth_verifier]) but it is giving me variable locale définie ou méthode params' for main:Object (NameError)OAuth me donne l'erreur 401

  • le type d'application client Twitter
  • le script de ruby ​​est comme (je suivais this tutorial)
  • J'aimerais obtenir dehors de ces détails d'accès de manuscrit. Le meilleur sans utiliser de code PIN.

.

gem 'oauth' 
require 'oauth/consumer' 

consumer_key = 'your key' 
consumer_secret ='your secret' 

consumer=OAuth::Consumer.new "consumer_key", 
          "consumer_secret", 
          {:site=>"http://twitter.com"} 

request_token = consumer.get_request_token 

puts request_token.token 
puts request_token.secret 
puts request_token.authorize_url 
puts "Hit enter when you have completed authorization." 
STDIN.gets 

access_token = request_token.get_access_token 
#access_token = request_token.get_access_token(:oauth_verifier => params[:oauth_verifier]) 

puts access_token.token 
puts access_token.secret 
puts 
puts access_token.inspect 

Répondre

5

J'avais exactement le même problème. remplacer:

STDIN.gets 

avec:

pin = (gets.chomp).to_i 

Le to_i convertit en nombre entier qui agit également pour enlever les espaces. Ensuite, vous devez spécifier la broche lorsque vous essayez d'obtenir le jeton d'accès. Si vous ne le faites pas, il n'y a aucune preuve que l'utilisateur a autorisé votre application.

access_token = request_token.get_access_token(:oauth_verifier => pin) 

puts "Access Token : " + access_token.token 
puts "Access Secret : " + access_token.secret 
+0

lorsqu'il est utilisé votre code, j'ai reçu 'variable locale non définie ou méthode' oauth » pour principal: Object (NameError)' – Radek

+0

Ce fut mon erreur dans le premier exemple affiché. J'ai réécrit ma réponse qui rend le commentaire précédent non pertinent. La réponse actuelle devrait résoudre le problème d'origine – Morgan

+0

génial! fonctionne bien. Je peux faire cette procédure d'obtention des détails d'accès secret une fois et l'utiliser plus tard. – Radek