9ml

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 '動画が見つかりません';
    }
?>
ホームに戻る