List機能を使用したtwitterTLの分類(ruby使用)
最近はtwitterをPCではなくスマホで見る機会が多くなり、つまり以前に構築したTweenによるTL振り分けが意味をなさなくなったため、スマホ・PC共に使えるタイムライン振り分け方法に変更することにしました。
[自分用メモ]twitterの閲覧環境を再構築したいついでに勉強:ぷりどうぐ
つまりTwitterのリスト機能を使って振り分けします。
…twitterクライアントの中にはPC・スマホで振り分け情報を共有できるものもありますが、サードパーティーのクライアントの振り分けに依存するのは嫌だなぁ…という思いがあり。いや、何年後もサービス継続してるか確証がないし、他のTwitterクライアントを使いたくなった時に足かせになるし。
Contents
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」は以下の理由より記載。
- エラー:OpenSSL::SSL::SSLError SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed – komiyakの通り道
- twitter gem設定で転ける→opensslかと思いきやSSL証明書のせい – 別館 子子子子子子(ねこのここねこ)
次に各処理
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)
ちなみに誰をリストに追加するかは人力で判別しました。
ディスカッション
コメント一覧
まだ、コメントがありません