Twitter の REST API で mention を RDB に収めるときに注意したこと

データ取得の流れ

データの取得の流れは以下のようになります。

  1. ツイート
  2. ツイートに mention が含まれていればその一覧(配列)
  3. 配列に入っている mentions から個々の mention を取り出す
  4. 個々の mention の mention先 のユーザ情報を取得しつつ、RDB に格納する

前提

  • 個々の mention に含まれる情報は以下のとおり
    • mention先のユーザ名
    • mention先のスクリーンネーム
    • mention先のユーザID
    • そのmentionの記述がツイートのどこの場所(何文字目から何文字目)に存在するか
  • mention先のユーザの情報*1も根こそぎ取る
  • mentionが格納されるテーブルにはユーザが格納されるテーブルへの外部キーを作る

気をつけること

  • ユーザとmentionは1対多の関係にあるため、まずユーザの情報を格納しておかないと外部キーで結び付けられない
  • ツイートを元にmentionの情報を取得し、そのmentionの情報をもとにユーザの情報を取得することになるが、ここで直感的なループを行うと Rate limits にすぐに達してしまうため、ユーザ情報はバルクで取得するように工夫する
    • ↑が一番言いたかったことです

*1:サムネイル画像やFav数など

Powered by はてなブログ