class TwitRuby
encoding:utf-8
Constants
- VERSION
Public Instance Methods
dm_msgs(since_id="",max_id="",count="",include_entities="",skip_status="")
click to toggle source
GET direct_messages
# File lib/twitruby.rb, line 237 def dm_msgs(since_id="",max_id="",count="",include_entities="",skip_status="") return JSON.parse(@access_token.get("/1.1/direct_messages.json", "since_id" => since_id, "max_id" => max_id, "count" => count, "include_entities" => include_entities, "skip_status" => skip_status ).body) end
dm_send(user_id="",screen_name="",text)
click to toggle source
POST direct_messages/new
# File lib/twitruby.rb, line 211 def dm_send(user_id="",screen_name="",text) if user_id.empty? then return "Error. user_id => empty" end @access_token.get("/1.1/direct_messages/new.json", "user_id" => user_id, "screen_name" => screen_name, "text" => text) end
favorite(id)
click to toggle source
POST favorites/create
# File lib/twitruby.rb, line 116 def favorite(id) @access_token.post("/1.1/favorites/create.json", "id" => id.to_s) end
follow(screen_name="",user_id="")
click to toggle source
POST friendships/create
# File lib/twitruby.rb, line 143 def follow(screen_name="",user_id="") @access_token.post("/1.1/friendships/create.json", "screen_name" => screen_name, "user_id" => user_id, "follow" => true) end
follower_ids(user_id="",screen_name="",cursor="",stringify_ids="",count="")
click to toggle source
GET followers/ids
# File lib/twitruby.rb, line 257 def follower_ids(user_id="",screen_name="",cursor="",stringify_ids="",count="") return JSON.parse(@access_token.get("/1.1/followers/ids.json", "user_id" => user_id, "screen_name" => screen_name, "cursor" => cursor, "stringify_ids" => stringify_ids, "count" => count ).body) end
friendships?(source_id="",source_screen_name="",target_id="",target_screen_name="")
click to toggle source
GET friendships/show
# File lib/twitruby.rb, line 293 def friendships?(source_id="",source_screen_name="",target_id="",target_screen_name="") #Convert and Build if source_id.empty? == true && source_screen_name.empty? == false source_ = "source_screen_name" source=source_screen_name elsif source_id.empty? == false && source_screen_name.empty? == true source_ = "source_id" source = source_id else return "ERROR" end if target_id.empty? ==true && target_screen_name.empty? == false target_ = "target_screen_name" target = target_screen_name elsif target_id.empty? ==false && target_screen_name.empty? == true target_ = "target_id" target = target_id else return "ERROR" end return JSON.parse(@access_token.get("/1.1/friendships/show.json?#{source_}=#{source}&#{target_}=#{target}").body) end
gen_parms(api,parms)
click to toggle source
Generate api parameters function
# File lib/twitruby.rb, line 93 def gen_parms(api,parms) hash_str="?" parms.each{|key,value| hash_str+=key.to_s+"="+value.to_s+"&" } hash_str[hash_str.size-1]="" return hash_str.chomp end
get_rate_limit()
click to toggle source
GET account/rate_limit_status
# File lib/twitruby.rb, line 288 def get_rate_limit return JSON.parse((@access_token.get("/1.1/application/rate_limit_status.json")).body) end
get_rom(count,since_id="",max_id="",trim_user="",include_entities="",include_user_entities="")
click to toggle source
GET statuses/retweets_of_me
# File lib/twitruby.rb, line 197 def get_rom(count,since_id="",max_id="",trim_user="",include_entities="",include_user_entities="") return JSON.parse(@access_token.get("/1.1/statuses/retweets_of_me.json", "count" =>count, "since_id" => since_id, "max_id" => max_id, "trim_user" => trim_user, "include_entities" => include_entities, "include_user_entities" => include_user_entities ).body) end
get_sent_dm(since_id="",max_id="",count="",page="",include_entities="")
click to toggle source
GET direct_messages/sent
# File lib/twitruby.rb, line 222 def get_sent_dm(since_id="",max_id="",count="",page="",include_entities="") if since_id.empty? || max_id.empty? || count.empty? || page.empty? || include_entities.empty? then return "Error. same parms is empty" end return JSON.parse(@access_token.get("/1.1/direct_messages/sent.json", "since_id" => since_id, "max_id" => max_id, "count" => count, "page" => page, "include_entities" => include_entities, ).body) end
home_timeline(count,since_id="",max_id="",trim_user="",include_entities="",include_user_entities="")
click to toggle source
GET statuses/home_timeline
# File lib/twitruby.rb, line 170 def home_timeline(count,since_id="",max_id="",trim_user="",include_entities="",include_user_entities="") return JSON.parse(@access_token.get("/1.1/statuses/home_timeline.json", "count" =>count, "since_id" => since_id, "max_id" => max_id, "trim_user" => trim_user, "include_entities" => include_entities, "include_user_entities" => include_user_entities ).body) end
initalize_connection(consumer_keys)
click to toggle source
# File lib/twitruby.rb, line 26 def initalize_connection(consumer_keys) ak_exist=true #デフォ状態での引数にアクセストークン系があるかないか 初期になかった場合は処理中にfalseに変更 if consumer_keys.size !=4 then puts "error" puts "wrong number of arguments" puts "arguments array is require 4 element" exit end consumer_key = consumer_keys[0] consumer_secret = consumer_keys[1] access_token = consumer_keys[2] access_token_secret = consumer_keys[3] @consumer = OAuth::Consumer.new( consumer_key, consumer_secret, :site => "http://api.twitter.com/" ) if access_token == nil || access_token == "" || access_token_secret == nil || access_token_secret == "" puts "アクセストークンが設定されていないため、アクセストークンを取得します" oauth_array = oauth_init access_token = oauth_array[0] access_token_secret = oauth_array[1] ak_exist = false end #puts access_token #puts access_token_secret @access_token = OAuth::AccessToken.new( @consumer, access_token, access_token_secret ) end
mentions_timeline(count="",since_id="",max_id="",trim_user="",contributor_details="",include_entities="")
click to toggle source
GET statuses/mentions_timeline
# File lib/twitruby.rb, line 158 def mentions_timeline(count="",since_id="",max_id="",trim_user="",contributor_details="",include_entities="") return JSON.parse((@access_token.get("/1.1/statuses/mentions_timeline.json", "count" => count, "since_id" => since_id, "max_id" => max_id, "trim_user" => trim_user, "contributor_details" =>contributor_details, "include_entities" =>include_entities) ).body) end
oauth_init()
click to toggle source
# File lib/twitruby.rb, line 64 def oauth_init begin request_token = @consumer.get_request_token # require "Win32API" # shellexecute = Win32API.new("shell32.dll","ShellExecuteA",%w(p p p p p i),"i") # shellexecute.call(0, "open", "#{request_token.authorize_url}", 0, 0, 1) puts("Access here: #{request_token.authorize_url}\nand...") print("Please input pin:=>") pin = STDIN.gets.chomp puts ""#改行 access_token = request_token.get_access_token( :oauth_token => request_token.token, :oauth_verifier => pin ) access_tokens = [] access_tokens << access_token.token.to_s access_tokens << access_token.secret.to_s return access_tokens end#end of begin end
post_delete(id)
click to toggle source
POST statuses/destroy
# File lib/twitruby.rb, line 133 def post_delete(id) @access_token.post("/1.1/statuses/destroy/#{id}.json") end
post_dm_destory(id,include_entities="")
click to toggle source
POST direct_messages/destroy
# File lib/twitruby.rb, line 248 def post_dm_destory(id,include_entities="") @access_token.post("/1.1/direct_messages/destroy.json", "id" => id, "include_entities" => include_entities) end
public_sample() { |status| ... }
click to toggle source
Public Sample
# File lib/twitruby.rb, line 353 def public_sample(&block) uri = URI.parse("https://stream.twitter.com/1.1/statuses/sample.json") https = Net::HTTP.new(uri.host, uri.port) https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_NONE https.start do |https| request = Net::HTTP::Get.new(uri.request_uri+"track=twitter") request.oauth!(https, @consumer, @access_token) buf = "" https.request(request) do |response| response.read_body do |chunk| buf << chunk while(line = buf[/.*(\r\n)+/m]) begin buf.sub!(line,"") line.strip! status = JSON.parse(line) rescue break end yield status end end end end end
remove(screen_name="",user_id="")
click to toggle source
POST friendships/destroy
# File lib/twitruby.rb, line 151 def remove(screen_name="",user_id="") @access_token.post("/1.1/friendships/destroy.json", "screen_name" => screen_name, "user_id" => user_id) end
retweet(id)
click to toggle source
POST statuses/retweet
# File lib/twitruby.rb, line 128 def retweet(id) @access_token.post("/1.1/statuses/retweet/#{id}.json") end
unfavorite(id)
click to toggle source
POST favorites/destroy
# File lib/twitruby.rb, line 122 def unfavorite(id) @access_token.post("/1.1/favorites/destroy.json", "id" => id.to_s) end
update(str, id="")
click to toggle source
POST statuses/update
# File lib/twitruby.rb, line 104 def update(str, id="") if (id.empty?) then @access_token.post("/1.1/statuses/update.json", "status" => str) else p @access_token.post("/1.1/statuses/update.json", "status" => str, "in_reply_to_status_id" => id) end end
user_ava?(user_name)
click to toggle source
GET username_available? 存在確認なので真偽値は逆となる trueなら使用可(IDとして新規作成時に)
# File lib/twitruby.rb, line 269 def user_ava?(user_name) #for https https = Net::HTTP.new("twitter.com",443) https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_NONE #get and parse get_torf = JSON.parse(https.get("/users/username_available", "user_name" => user_name).body)["valid"] if get_torf == false return true#存在する elsif get_torf == true return false#存在しない end end
user_stream() { |status| ... }
click to toggle source
UserStream
# File lib/twitruby.rb, line 324 def user_stream(&block) uri = URI.parse("https://userstream.twitter.com/1.1/user.json") https = Net::HTTP.new(uri.host, uri.port) https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_NONE https.start do |https| request = Net::HTTP::Get.new(uri.request_uri) request.oauth!(https, @consumer, @access_token) buf = "" https.request(request) do |response| response.read_body do |chunk| buf << chunk while(line = buf[/.*(\r\n)+/m]) begin buf.sub!(line,"") line.strip! status = JSON.parse(line) rescue break end yield status end end end end end
user_timeline(user_id="",screen_name="",since_id="",count="",max_id="",trim_user="",exclude_replies="",contributor_details="",include_rts="")
click to toggle source
GET statuses/user_timeline
# File lib/twitruby.rb, line 182 def user_timeline(user_id="",screen_name="",since_id="",count="",max_id="",trim_user="",exclude_replies="",contributor_details="",include_rts="") return JSON.parse(@access_token.get("/1.1/statuses/user_timeline.json", "user_id" => user_id, "screen_name" => screen_name, "since_id" => since_id, "count" => count, "max_id" => max_id, "trim_user" => trim_user, "exclude_replies" => exclude_replies, "contributor_details" => contributor_details, "include_rts" => include_rts ).body) end
verify_credentials()
click to toggle source
GET account/verify_credentials
# File lib/twitruby.rb, line 138 def verify_credentials return JSON.parse(@access_token.get("/1.1/account/verify_credentials.json").body) end