質問: twitterで投稿ボタンをサイトに設置したいのですが、そのツィートに動画を埋め込みたいと思っています。twitter cardではなく、動画そのものを埋め込んで投稿したいと思っています。 動画自体はサーバー上にあるものではなく、ユーザーがポストする形にしたいです。 やり方ご存知の方、ご教示お願いします。
回答: Twitter API の `media/upload` エンドポイントを用いることで、画像、動画や GIF アニメーションなどのメディアオブジェクトをアップロードすることが出来ます。 `media/upload` エンドポイントを使い動画をアップロードする手順は、以下のようになっています。 1. `INIT` コマンドを使用し、アップロードする動画のサイズや MIME タイプなどの情報を渡します。この API 応答で返されるメディア識別子 (`media_id`) は、後続リクエストの実行時に必要です。 2. `APPEND` コマンドを使用し、動画のアップロードを行ないます。動画は分割してアップロードすることが可能です。もし動画を分割してアップロードする場合、分割した数だけ `APPEND` コマンドを用いたリクエストを行なわなければなりません。 3. 動画のアップロードが完了した後、`FINALIZE` コマンドを使用し、アップロードが完了したことを知らせます。もし、 `FINALIZE` コマンドの応答に `processing_info` フィールドが含まれる場合、`STATUS` コマンドを使い、`STATUS` コマンドが `succeeded` を返すまで待機します。この手順が完了すれば、`media_id` を他のエンドポイントで使用することが出来ます。 このエンドポイントに関するより詳しい情報は、Twitter のドキュメントに書かれているので、一度読んでみると良いと思います。また、非同期的にサイズの大きいメディアファイルをアップロードするコードのサンプルが GitHub に存在するため、コードを記述するときの参考になるかもしれません。 参考: * メディアのアップロード 概要 — Twitter Developers