やったこと

webサービスを作るときに考えたことを垂れ流します

Twitter APIで取得したつぶやきが「truncated=true」で切れてしまう!

この前ツイッターAPIでつぶやきを取得したら、長いつぶやきの全文を取得できませんでした。

つぶやきの末尾が「・・・」となってしまって省略されてしまっていたんです(truncatedというフィールドにはtrueがセットされていました・・)

最近ツイッター公式側の対応で、長いつぶやきはちょん切れて、省略されてしまう仕様になったそうです。

Upcoming changes to Tweets — Twitter Developers

省略されていないつぶやきを取得するためには、ツイッターAPIのURLの最後に「tweet_mode=extended」というクエリーを付けること。

すなわち「https://api.twitter.com/1.1/statuses/show.json?tweet_mode=extended

といったURLに要求を送ると「text」フィールドの代わりに「full_text」というフィールドが用意されて、そこに省略されていないつぶやきが格納されているそうです。

私はツイッターAPIを使うときに「TwitterOAuth」というライブラリを使っているんですが、例えば「TwitterOAuth」で長文つぶやきを取得するときは、以下のようになります。

  $oauth_access_token = "hogegegegege";
  $oauth_access_token_secret = "fugagagagagaga";
  $consumer_key = "abcdefghijklmnopqrstuvxxyz";
  $consumer_secret = "testestestestestes";

  $connection = new TwitterOAuth($consumer_key,$consumer_secret,$oauth_access_token,$oauth_access_token_secret);
  $result = $connection->get("statuses/show", array("id" => "123456789", "tweet_mode" => "extended"));


「TwitterOAuth」のインストールの仕方は、私が以前書いた記事をご参照ください。
twitteroauthの使い方(2015年3月時点) - やったこと

以上です。