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



コメント