2010-12-01 2 views
3

J'essaie d'obtenir la liste des amis de l'utilisateur spécifique de twitter.
C'est mon code -
Essayer d'obtenir la liste des amis de twitter en utilisant httparty (ruby)

require 'rubygems' 
require 'httparty' 

class TwitterData 
    include HTTParty 
    base_uri 'http://api.twitter.com/1/' 
    default_params :output => 'json' 
    format :json 

    def self.get_username_data(username) 
    get('statuses/friends.json' , :query => { :screen_name => username }) 
    end 
end 

puts "Please your twitter username - " 
twitter_username = gets 
puts TwitterData.get_username_data(twitter_username).inspect 

C'est l'erreur que je reçois -

Please your twitter username - 
twitter 
C:/Ruby192/lib/ruby/gems/1.9.1/gems/crack-0.1.8/lib/crack/json.rb:14:in `rescue in parse': Invalid JSON string (Crack::ParseError) 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/crack-0.1.8/lib/crack/json.rb:12:in `parse' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/httparty-0.6.1/lib/httparty/parser.rb:116:in `json' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/httparty-0.6.1/lib/httparty/parser.rb:136:in `parse_supported_format' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/httparty-0.6.1/lib/httparty/parser.rb:103:in `parse' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/httparty-0.6.1/lib/httparty/parser.rb:66:in `call' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/httparty-0.6.1/lib/httparty/request.rb:180:in `parse_response' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/httparty-0.6.1/lib/httparty/request.rb:164:in `handle_response' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/httparty-0.6.1/lib/httparty/request.rb:57:in `perform' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/httparty-0.6.1/lib/httparty.rb:280:in `perform_request' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/httparty-0.6.1/lib/httparty.rb:232:in `get' 
     from twitter_friends_2.rb:11:in `get_username_data' 
     from twitter_friends_2.rb:17:in `<main>' 
+0

Avez-vous essayé user_id au lieu de screen_name? –

+0

Cela semble être un problème avec Crack. Je l'ai rencontré à l'occasion en utilisant la gemme: / – raidfive

Répondre

1

Remplacez votre méthode avec cette

def self.get_username_data(username) 
    get("/statuses/friends.json?screen_name=#{username}") 
end 

OU

def self.get_username_data(username) 
    get('/statuses/friends.json' , :query => { :screen_name => username.strip }) 
end 

Vous devez supprimer le nom d'utilisateur car à partir de la ligne de commande, lorsque l'utilisateur entre le nom d'utilisateur et la clé d'entrée, un «\ n» est ajouté au nom d'utilisateur et le même nom d'utilisateur est envoyé comme paramètre. L'un des extraits de code donnés ci-dessus devrait fonctionner.

Questions connexes