「Twitter API」を使って、画像付きのツイートや動画付きのツイートを取得したいと、問い合わせがありました。
しかも、特定のアカウントの画像ツイート・動画ツーイトだけを取得したいという事です。
検索して取得したツイートから画像、動画のメディア情報の取得を記します。
PHPからTwitterAPIを操作するにはtwitteroauthを利用します。
前にtwitterへの自動投稿記事を書いてるのですが、twitterの準備をして、twitteroauthをダウンロードしてください。
https://solo-phper-book.xyz/twitter-bot-twitteroauth-create/
参考サイト
Twitterの特定アカウント画像・動画付きツイート検索
-
アカウントを指定して検索
検索キーワードの前に「from:ユーザー名」と入力して検索すると、特定のアカウント内のツイートを検索する事が出来ます。 -
画像付きのツイートだけを検索
検索キーワードに続けて「filter:images」と入力して検索すると、画像付きのツイートを検索する事が出来ます。 -
画像付きのツイートだけを検索
検索キーワードに続けて「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;
- 検索キーワード
- result_typeで設定できる種類は3種
- ツイートの取得数
qに検索したいキーワードを設定します。
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オブジェクトの中をそれぞれ確認してください。