tmytのらくがき

個人の日記レベルです

Twitterのレスポンスは人が理解できるものではなくなったのだよ

TwitterのRESTとStreamingのレスポンスがあまりにも難しすぎて忘れてしまうのでメモ。

  1. RESTでtweet_mode=extendedがついていない場合
    1. 添付画像のURLを含めて140文字以下の場合
      • 今まで通りtext, entities, extended_entities が設定される
    2. 添付画像のURLを含めて140文字を超える場合
      • textには全文表示URLを含んだものが設定される。
      • truncatedフィールドがtrueになる
      • entities, extended_entitiesに画像などは含まれず、全文表示URLのみが含まれる
  2. RESTでtweet_mode=extendedがついている場合
    1. 添付画像のURLを含めて140文字以下の場合
      • textはなくなる。代わりにfull_textが増える
      • truncatedフィールドはfalseになる
      • display_text_rangeフィールドが増えて、本文範囲が明示される
      • entities, extended_entities はこれまで通り
        • 含まれるindicesはfull_textに対して正しい値が格納される
  3. Streamingの場合
    1. 添付画像のURLを含めて140文字以下の場合
      • 今まで通りtext, entities, extended_entities が設定される
    2. 添付画像のURLを含めて140文字を超える場合
      • textには全文表示URLが含まれる
      • entities, extended_entitiesに画像は含まれず、全文表示URLのみが含まれる
      • extended_tweetフィールドが増える
        • ここにfull_text, display_text_range, entities(画像入ってる)がある
        • extended_tweet.entitiesはextended_entitiesと同様に複数枚画像に対応してる

つまるところ、全部のパターンをパースしようと思うと

  1. extended_tweet フィールドを見る
  2. full_text をみる
  3. text をみる

とかしないといけなくてくそめんどい

追記: entities を見るときは

  1. extended_tweet.entities をみる (extended_tweet.entitiesはextended_entitiesを包含しているので単体でOK)
  2. 画像はextended_entities、それ以外はentitiesをみる

で、いけます。こっちもめんどい。

結論

くそめんどい