ラック
Home > ブログ > 記事 > 2017年7月 > Twitterのリストから特定のユーザの画像付きツイートを取得するbot「ついらすと推し」

Twitterのリストから特定のユーザの画像付きツイートを取得するbot「ついらすと推し」

カテゴリ: プログラム,メール,Web自作

経緯

貴方はあるとき何気なくTwitterを開くと、自分の好みの絵柄のイラストを見かけました。とりあえずふぁぼします。ふぁぼした後に、「この絵師さんまたアップしてくれないかなー」と思うことでしょう。しかし、その絵師さんがいつ次のイラストをアップしてくれるかは分かりません。このとき、貴方が取ることのできる行動は主に2つであると考えられます。

  • フォローする
  • リストに追加する

貴方は既に数百人のユーザをフォローしており、単純にフォローするだけでは見逃してしまうかもしれません。そこで今回は、ジャンル等にカテゴライズドされたリストに追加することにします。例えば、「好みの絵柄(自分用)」という名前のリストに。

しかし、いつの間にかリストメンバーのユーザ数が膨らみ、やはり把握しきれなくなってきました。しかも、どうやら今回追加した絵師さんは多忙らしく、呟く頻度が低いようです。

ここで、貴方が取ることのできる手段として、一つの案があります。

「リストのTLを取得して、今回追加したユーザさんのメディア付きツイートが存在すれば、それを通知する」

Twitterの仕様から、何らかのメディア(イラストや写真、動画)が添付されていること、そしてイラストや画像なのか、動画なのかは判別ができますが、残念ながらその画像ファイルが写真なのかイラストなのかは簡単には分かりません。そのため、条件は「画像(写真かもしれない)がメディアファイルとして添付されているツイート」とします。

ということで、「ある特定のユーザ(複数可)の画像ファイルが添付されているツイートを、リストのTLから取得する」プログラムを作ることにしました。

これで、今回追加した絵師さんのイラストを見逃す可能性はかなり少なくなるでしょう。

このプログラムで行うこと

  1. cronで一定時間おきにリストのTLを取得し、ある特定のユーザ(複数可)の画像ファイルが添付されているツイートを探す
    • 画像ファイルが添付されているツイートが存在すれば、それをリスト形式でWebページ上に一覧として表示
    • 同時に、取得したデータをメールで通知

システムとしてやったこと

  1. 先述のフローに則ったプログラムを作成
  2. サーバにプログラムとWebページをアップし、cronでスケジュールを組む
  3. 受信側(今回はGmail)でラベル付与のフィルタリング設定を行う
    1. Web版Gmailの左のラベル一覧から「新しいラベルを作成」でラベルを作成。名前を付け、「作成」ボタンをクリック
      Gmailのラベル作成画面
    2. Web版Gmailのホーム画面の右上の歯車アイコンをクリックして「設定」に進む。「フィルタとブロック中のアドレス」タブに進み、「新しいフィルタを作成」をクリックしてフィルタの設定を行う。
      まずはフィルタ条件の設定。Fromに今回プログラム中で設定したFromのメールアドレスを指定し、「この検索条件でフィルタを作成」をクリック
      フィルタ設定画面
    3. 検索オプションの設定。アクションとして「ラベルを付ける」にチェックを付ける。先ほど作成したラベルを選択し、「フィルタを作成」ボタンをクリック
      フィルタ設定画面2

これで、後はスケジュールした時間になるのを待つ。予定では、リストのTLを取得したデータの一覧がGmail宛に届くはず。

テストで届いたメール

ということで、無事にリストのTLから画像付きツイートを取得した一覧が届きました!

名前

"つい"ったーの"イラスト"を"推し"てくれるので、"ついらすと推し"と安直にネーミング。

参考

Twitter API

Gmail

タグ: ネタ,php

 



関連する記事一覧