【abraham/twitteroauth】TwitterにAPIで動画アップロード後、ステータスを確認する方法

本ページにはプロモーションが含まれています。

【abraham/twitteroauth】TwitterにAPIで動画アップロードした後のステータス確認方法

abraham/twitteroauthで動画をアップロードした後、動画のステータスを確認する方法です。

つまり、TwitterAPIの公式サイトのGET media/upload (STATUS)を使う方法です。

悪い例(400エラー、Invalid media_id: Some(media/upload)になる)

こんな感じでいけるでしょう、

$status_array=array(
        'command' => 'STATUS',
        'media_id' => '1234',//動画メディアのmedia_id_string
    );
$res_status = $twitter->get(
                'media/upload',
                $status_array,
            );

という感じで実行すると、

object(stdClass)#64 (2) {
  ["request"]=>
  string(22) "/1.1/media/upload.json"
  ["error"]=>
  string(37) "Invalid media_id: Some(media/upload)."
}

になる。

うまくいった例

しょうがないのでソース見ました。

twitteroauth/TwitterOAuth.php at main · abraham/twitteroauth · GitHub

315行目です。(v4.0.0 2022年6月17日現在)

$res_status = $twitter->mediaStatus(
                '1234'//動画メディアのmedia_id_string
            );

こんなん分かるわけない!

うまくいくと以下のようなレスポンスが返ってきます。

object(stdClass)#4 (4) {
  ["media_id"]=>
  int(1234)
  ["media_id_string"]=>
  string(19) "1234"
  ["media_key"]=>
  string(22) "hoge_hogehoge"
  ["processing_info"]=>
  object(stdClass)#15 (3) {
    ["state"]=>
    string(11) "in_progress"
    ["check_after_secs"]=>
    int(1)
    ["progress_percent"]=>
    int(5)
  }
}

stateがsucceededになったら処理完了です。

progress_percentが100になると「完了」(stateがsucceeded)なのですが、感覚的には5の時間が長くて、その後一気に100にあがる感じです。

php
Sabohをフォローする
左坊のメモ帳

コメント

タイトルとURLをコピーしました