Twitterのタイムラインから直接モーメントに追加したい
はじめに
皆さんはTwitterのモーメントを利用していますか?
モーメントというのはツイートをまとめて公開することができる機能で、 わたしの場合は今まで描いたイラストをまとめたモーメントを作成したりしています。
そんなわけで今まで作ったものどす
— ゆでうなぎ (@yudeunagi) October 26, 2019
⚡️「Live2D作業」https://t.co/3HUhnlaDCY
⚡️「動画撮影用VRChatワールド」https://t.co/flwQy7mh83
⚡️「VRChat用モデルができるまで」https://t.co/YQvxxlIlkq
⚡️「シェーダー」https://t.co/Dvj0iYcELp
⚡️「すいかしるしる」https://t.co/n0xKyGtPOO
しかし現在、モーメントにツイートを追加するためにはTOP画面のメニューからモーメント一覧を選択し、モーメント編集画面に入る必要があります
これは非常に面倒なのでTOPのホーム画面に表示されているツイートから直接モーメントに追加したい、したくない?したいよね?
以下の画像のような事ができるChrome拡張がないかも探してみたのですが見つかりませんでした、無念。
モーメント追加のしくみ
そこでモーメントにツイートを追加するにはどうすればよいか調べてみました。
これはモーメント編集画面でChromeの開発者ツールを開いたところですが、 モーメントにツイートを追加する際に特定のURLにPOSTリクエストを送っているようなので どのようなリクエストを送っているか見て見ました。
URL:
https://twitter.com/i/moments/edit/1306763116579942401/add
/addの手前の数字の羅列はモーメントIDでこれ自体はモーメントのURL等にもなっている値です。
Form Data:
authenticity_token: 3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX category: tweets moment_id: 1306763116579942401 scribeData[items][0][moments_details][moment_id]: 1306763116579942401 scribeData[items][0][moments_details][visibility]: private tweet_id: 1306955598903177217
authenticity_token は以下のサイトによるとCSRF対策トークンとのことでログイン時に発行されるもののようです。
category はおそらく、モーメントに追加するアイテムの種類かと思われます。
moment_id は上のURLでもあったモーメントIDですね。
scribeData[items][0][moments_details][moment_id] こちらもモーメントID
scribeData[items][0][moments_details][visibility] はモーメントの公開、非公開を表す値で公開は「public」非公開なら「private」になります。
tweet_id はその名の通りツイートのIDでこちらもモーメントIDと同様ツイートのURLとして確認できるものです。
まとめ
上記のリクエストの内容を見ると
- モーメントID
- ツイートID
- authenticity_token
の三つがわかればモーメントにツイートを追加することが出来そうな気がします。(もちろんこれ以外にも必要なものは出てくるとは思いますが・・・)
モーメントIDとツイートIDに関しては画面などに表示されているので簡単に取得できそうですが authenticity_tokenだけはログインごとに変わるのと、タイムラインのページになさそうなので 何らかの方法で取得する必要がありそうです。