Trying to get your friends list from Twitter using httparty (ruby)

I'm trying to get my favorites list of friends from twitter.
This is my 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

This is the error I get -

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>'
+3
source share
1 answer

Replace your method with

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

OR

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

You need to disconnect the username, because from the command line, when the user enters the username twitter and gets into the enter key, "\ n" is added to the username, and the same username is sent as the parameter that causes the problem. Any of the above code snippets should work.

+1
source

Source: https://habr.com/ru/post/1777966/


All Articles