Open5

Twitter API v2に軽く触ってみる

en30en30

新しくて重要そうなパラメータとして

  • fields
  • expansions

がある。

  • fileds でそのエンドポイントで取得するデータの必要な部分を指定する。
    • 例えばユーザであれば fileds=created_at,description,profile_image_url
  • expansions は、idのような参照用のデータしか含まれていないものの実体もデータとして返して欲しい場合に指定する
    • 例えばツイートに対して fields として author_id を指定しているときには、 expansions=author_id するとレスポンスにそのユーザの情報も入れてくれるようになる
en30en30

主要なデータは data に入ってくる。

{
  "data": ...
}

expansions で指定したものは、 data にそのまま埋め込まれるのではなく、includes にフラットになって入ってくる。

{
  "data": ...,
  "includes": {
    "users": [...],
    "tweets": [...]
  }
}
en30en30

名称が微妙に変わっている部分もある、 screen_nameusername

en30en30

複数の結果を取得するエンドポイントでは、meta にidの最大値、最小値が入ってくる(ページネーションで使える) 。

{
  "data": [...],
  "meta": {
    "newest_id": "",
    "oldest_id": "",
    "result_count": 10,
    "next_token": ""
  }
}
en30en30

newest_id, oldest_id には expansion で埋め込まれたものも計算に含まれているっぽい。
なので、これを次の取得するためのパラメータ since_id 等として使うと意図した結果にならない場合があることに注意。

  • たとえば referenced_tweets にかなり新しいものが含まれていた場合等

next_token を使う場合には気にしなくてよさそうなので、基本は next_token を使った方が良さそう。
ただ next_token には寿命がありそう?で、時間をおいて定期実行したい時でも使えるのかよくわからない。