読者です 読者をやめる 読者になる 読者になる

leglog

雑記にも満たない

twitterのURLの取り扱い方-自分用まとめ-

2011年9月16日現在で自分が確認したもの。

  • 基本…TLの取得時にentities情報を付加する

ツイートされた場合、全てのURLはツイート上ではt.coで省略されている。これを何らかの方法で展開したい。


1.APIを出すときに、&include_entities=trueをつける
  これにより、返ってくるJSONデータにentitiesが入り、t.coで省略されたURLを見れるようになる。


2.entitiesの中身がややこしい
  これまた非常にややこしい。

  • 基本的なURLはすべてentities.urls[0].expanded_urlに入る*1

  url,display_url,expanded_urlと3つ枝があるが、urlはt.coで省略されたもの、dispay_urlは表示用に…で丸められたもの、expandedは展開されたURLが入っている。
  ただし、bit.ly等の短縮サービスを利用したURLの場合、expandedに入っているのはbit.lyで短縮されたもののままである。
  これを更に展開するには短縮元を調べる必要があり、若干表示部のタイムロスが出そうで微妙な所である。
  単純な生のURLに置き換える場合、expanded_urlを参照してtextに正規表現で置き換えれば良い。


  • hootsuiteで呟かれたURLは省略されたURLがentities.urls[0].urlに入る

  hootsuite経由でツイートされたURLはexpanded_urlがnullになり、urlにow.lyで短縮されたもののみ入っている。display_urlの枝もない。
  これも展開する場合、展開先の確認が必要だろう。

  • twitterの公式写真アップロードのURLはentities.urls[0].media[0]に入る

  twitterの公式写真アップロードで投稿されたURLは、urlsには何も入っておらず、entities.media[0]に入っている。
  この中身は画像、サムネ、ページのURL等々色々と入っているので、どんなことやるにしても困ることはないだろう。
  ただし、mediaの枝はこの時しか無いので、単純にnullで分岐しようとするとundefinedを返されるので注意。

*1:urlsは複数URLを貼っている分だけ増える