1年前に行われた会話を復活させたいので、私はすべての古いDMをTwitterで表示およびアーカイブしたいと考えています。
Twitterによると、古いメッセージは削除せず、データベースにアーカイブするだけです。
サードパーティのアプリで古い公開ツイートをすべて表示できるのと同じように、これらのメッセージをすべて表示してダウンロードする方法はありますか?
更新:http ://snapbird.org/を見つけましたが、どうやら今はDMで機能していません
1年前に行われた会話を復活させたいので、私はすべての古いDMをTwitterで表示およびアーカイブしたいと考えています。
Twitterによると、古いメッセージは削除せず、データベースにアーカイブするだけです。
サードパーティのアプリで古い公開ツイートをすべて表示できるのと同じように、これらのメッセージをすべて表示してダウンロードする方法はありますか?
更新:http ://snapbird.org/を見つけましたが、どうやら今はDMで機能していません
回答:
Twitterアーカイブをダウンロードすると、最初のツイートから始めて、Twitter情報のスナップショットを閲覧できます。リンクの後ろには、Twitterのヘルプページがあり、5ステップごとに、Twitterに「最初のtwitからの情報」の(引用)ダウンロード可能な.zipアーカイブの作成をリクエストする方法を説明しています。時間がかかる可能性があるため、タスクの完了後にリンクをメールで送信することを約束します。
Twitterがダイレクトメッセージ機能をリリースしたとき、技術的な選択と制限のため、古いメッセージを取り戻すことはできませんでした。ただし、削除されたことはなく、ダイレクトメッセージを使用して、会話に投稿されたメッセージを読むことができるようになりました。
悲しいことに、DMはアーカイブの一部ではありません(私が理解するには、会話の他の人からのツイートを含める必要があるためです)。そのため、現時点ではこの方法でDMを取得できないため、silpolからの回答は現在正しくありません。
それらをオフラインにしておくためにそれらを読んだりダウンロードしたりするだけの場合、これを行うには3つの方法があります。
多分私は3番目のアイデアであなたを助けることができます。ダイレクトメッセージをダウンロードするためのツール(https://github.com/Mincka/DMArchiver)を作成しました。アップロードした画像とGIFも(MP4として)ダウンロードできます。
APIに依存しないため、200を超えるメッセージをダウンロードできます。スクリプトは「スクロール方法」をシミュレートし、結果を解析するだけです。サードパーティのサービスは関与しないため、資格情報とメッセージを非公開にしてください。
同じロジックを使用してDMを取得する独自のプログラムを作成する場合、主なアイデアはauth_token
、認証用の有効なCookie値を使用して次のURLを呼び出し、ループでリクエストを作成し、json応答を解析することです:
https:/ /twitter.com/messages/with/conversation?id=1337&max_entry_id=1337
このmax_entry_id
値は最初のリクエストには必要ありません。次の20(古い)ツイートを取得するには、後続の各反復でmin_entry_id
新しい値として応答の変数の値を使用する必要がありますmax_entry_id
。max_entry_id
がjson応答にない場合は、スレッドの先頭にいます。