List機能を使用したtwitterTLの分類(ruby使用)

最近はtwitterをPCではなくスマホで見る機会が多くなり、つまり以前に構築したTweenによるTL振り分けが意味をなさなくなったため、スマホ・PC共に使えるタイムライン振り分け方法に変更することにしました。

[自分用メモ]twitterの閲覧環境を再構築したいついでに勉強:ぷりどうぐ

つまりTwitterのリスト機能を使って振り分けします。

…twitterクライアントの中にはPC・スマホで振り分け情報を共有できるものもありますが、サードパーティーのクライアントの振り分けに依存するのは嫌だなぁ…という思いがあり。いや、何年後もサービス継続してるか確証がないし、他のTwitterクライアントを使いたくなった時に足かせになるし。

rubyを使用してtwitterのフォロー・リムーブ・リスト取得・追加を実行

たくさん情報が溢れてますが自分用にメモ

まずはrubyから使う準備

require 'rubygems'
require 'twitter'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
Twitter.configure do |config|
  config.consumer_key = 'consumer_key'
  config.consumer_secret = 'consumer_secret'
  config.oauth_token = 'oauth_token'
  config.oauth_token_secret = 'oauth_token_secret'
end
client = Twitter::Client.new

「OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE」は以下の理由より記載。

次に各処理

Class: Twitter::Client  Documentation for jnunemaker/twitter (master)

  • フォロワー全取得
Twitter.friend_ids("teraco")

これでユーザーのIDが出力される。管理上はnameよりIDを使用したいが、IDだけだと誰だか分からないので以下のようにIDとnameを出力。ついでにDescription(自己紹介)も別ファイルで出力。別ファイルで出力する理由は、自己紹介に改行コードが入っている人だと1行に収まらないため(改行コードの処理が面倒だった)

Twitter.friend_ids("teraco").collection.each { |user|
  user_status = Twitter.user(user)
  puts "#{user}\t#{user_status['name']}\t#{user_status['screen_name']}"
  File.write("#{user}.txt", "#{user_status['description']}")
}

ID = '191728700’のような数字。変更不可。ユーザーからは見えない。

name = 'echofon’のような表示名。変更可能。

  • リムーブ
Twitter.unfollow(user)

userはIDでもnameでもどちらでもよい。

※ なおリムーブ方法を調べたのは、リスト追加前に自分がフォローしているユーザーを全員洗い直して、フォローする必要のなくなったユーザーをリムーブしたかったため。

  • リスト追加
members = [ID1,ID2,ID3…]
list = Twitter.list_add_members("teraco",listname, members)

ちなみに誰をリストに追加するかは人力で判別しました。