【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にあがる感じです。
コメント