2. 特定のツイートの動画URLを取得する
前提
・Twitter Developerアカウントを取得し、API Bearer Tokenを発行する必要があります
・無料プランを使っていて、リクエスト制限に引っかかる可能性があること
ソースコード
<?php
// twitter api bearer token
$bearer_token = '{あなたのTwitterAPIBearerToken}';
$tweet_id = '1783814047894499538';
// ツイートIDからTwitterAPIのエンドポイントを設定
$endpoint_url = "https://api.twitter.com/2/tweets/{$tweetId}?expansions=attachments.media_keys&media.fields=url,type";
// cURLセッションの初期化とオプションのセッティング
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer $bearer_token"]);
$response = curl_exec($ch);
curl_close($ch);
// レスポンスをJSON形式にデコード
$data = json_decode($response, true);
// リクエスト制限の確認(無料プラン)
if ( isset($data['status']) && $data['status'] === 429 ) {
echo "リクエスト制限に達しました。15分待ってから再試行してください";
exit;
}
// 一応データの確認
echo '<pre>';
print_r($data);
echo '</pre>';
//
if ( isset($data['includes']['media']) ) {
foreach ( $data['includes']['media'] as $media ) {
if ( $media['type'] === 'video' ) {
$video_url = $media['url'];
echo "動画のURLは" . $video_url;
exit;
}
}
} else {
echo '動画が見つかりません';
}
?>