Der Versuch, die Liste der Freunde von Twitter zu bekommen mit httparty (Rubin)
Frage
Ich versuche, die Liste der spezifischen oben Benutzer Freunde von Twitter zu bekommen.
Dies ist mein Code -
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
Dies ist der Fehler Ich erhalte -
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>'
Lösung
Ersetzen Sie Ihre Methode mit diesem
def self.get_username_data(username)
get("/statuses/friends.json?screen_name=#{username}")
end
oder
def self.get_username_data(username)
get('/statuses/friends.json' , :query => { :screen_name => username.strip })
end
Sie müssen den Benutzernamen abzustreifen, weil von der Kommandozeile, wenn der Benutzer den Benutzernamen twitter betritt und Hits Enter-Taste ein „\ n“ an den Benutzernamen angehängt wird und die gleichen Benutzernamen als Parameter gesendet, die das Problem verursacht. Jede der oben angegebenen Code-Schnipsel sollte funktionieren.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow