Twitter

Twitter API を使って画像・動画付きツイートを検索取得

「Twitter API」を使って、画像付きのツイートや動画付きのツイートを取得したいと、問い合わせがありました。

しかも、特定のアカウントの画像ツイート・動画ツーイトだけを取得したいという事です。

検索して取得したツイートから画像、動画のメディア情報の取得を記します。

PHPからTwitterAPIを操作するにはtwitteroauthを利用します。

前にtwitterへの自動投稿記事を書いてるのですが、twitterの準備をして、twitteroauthをダウンロードしてください。

https://solo-phper-book.xyz/twitter-bot-twitteroauth-create/

参考サイト

Twitter APIでつぶやきを取得する

Twitterの特定アカウント画像・動画付きツイート検索

  1. アカウントを指定して検索
    検索キーワードの前に「from:ユーザー名」と入力して検索すると、特定のアカウント内のツイートを検索する事が出来ます。
  2. 画像付きのツイートだけを検索
    検索キーワードに続けて「filter:images」と入力して検索すると、画像付きのツイートを検索する事が出来ます。
  3. 画像付きのツイートだけを検索
    検索キーワードに続けて「filter:images」と入力して検索すると、画像付きのツイートを検索する事が出来ます。

twitteroauthを使ってツイート検索

twitteroauthライブラリを読み込みオブジェクト作成。
検索ツイートのリストを取得。

//「twitteroauth」読み込み
//autoload.phpはtwitteroauthに含まれているPHPファイル
require_once '/設置した場所のファイルパス/autoload.php';
 
// OAuthオブジェクト生成
//twitterAPP作成で発行したトークンを記述してください。
$connection = new \Abraham\TwitterOAuth\TwitterOAuth("Consumer Key (API Key)","Consumer Secret (API Secret)","Access Token","Access Token Secret");

//ツイート取得
/*
* q:検索キーワード
* result_type:取得ツイートの種類[popular,recent,mixed]
* count:取得ツイート数
*/
$tweets_params = array('q' => 'キーワード','result_type'=>'recent','count' => '10');
$tweets = $connection->get('search/tweets', $tweets_params)->statuses;
  • 検索キーワード
  • qに検索したいキーワードを設定します。

  • result_typeで設定できる種類は3種
  • popular:人気のツイート
    recent:最新のツイート
    mixed:全てのツイート

  • ツイートの取得数
  • countはツイート検索結果の取得数です。
    1~100の間で指定できます。

画像付き、動画付きのツイートを新着で取得するだけなのでパラメーターは3つだけ使ってます。

他にも設定できるパラメーターはあります。
GET search/tweets – ツイートを検索するのサイトを参照してください。

取得したツイート情報から必要な情報を取得

1つ1つのツイートを情報を取り出し必要な情報を抜き出します。
ここでは、ツイートのID、日時、コメント、ツイート詳細URL、画像・動画のメディアURLを抜き出します。

foreach ((array)$tweets->statuses as $value) {
    $value->created_at;      //ツイート時間
    $value->id;              //ツイートID
    $value->text;            //ツイートコメント
    foreach((array)$value->extended_entities->media as $vaelu_media){
    	if($vaelu_media->type == 'photo'){
    	    $vaelu_media->id;          //画像ID
    	    $vaelu_media->media_url;   //画像URL [media_url_https]httpsでも取得可能
    	    $vaelu_media->expanded_url; //ツイート詳細URL
        }elseif($vaelu_media->type == 'video'){
    	    $vaelu_media->id;          //動画ID
    	    $vaelu_media->expanded_url; //ツイート詳細URL
            $vaelu_media->video_info->variants[0]->url; //mp4動画URL
        }
    }
}

他にも色々な多くの情報が取得されていますので$tweetsオブジェクトの中をそれぞれ確認してください。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です