Когда Twitter выпустил функцию «Прямые сообщения», было невозможно вернуть старые сообщения из-за технических решений и ограничений. Однако они никогда не удалялись, и теперь можно читать любые сообщения, опубликованные в беседе, с помощью прямых сообщений.
К сожалению, DM не являются частью вашего архива (потому что я полагаю, что для сохранения смысла в них должны содержаться твиты других людей из ваших разговоров). Следовательно, ответ от silpol в настоящее время не верен, потому что вы не сможете получить свои DM таким образом на данный момент.
Если вы просто хотите прочитать или загрузить их, чтобы держать их в автономном режиме, есть три способа сделать это:
- Используйте API Twitter и справьтесь с его ограничениями: можно получить только последние 200 прямых сообщений.
- Прокрутите вверх вручную в беседе в браузере или на телефоне. Этот метод будет достаточным для небольших разговоров, но ненадежным для больших.
- Используйте инструмент для имитации просмотра разговора и анализа результата.
Может быть, я могу помочь вам с третьей идеей. Я создал инструмент ( https://github.com/Mincka/DMArchiver ) для загрузки моих прямых сообщений с возможностью также загружать загруженные изображения и GIF-файлы (в формате MP4).
Поскольку он не использует API, можно загрузить более 200 сообщений. Скрипт просто имитирует «метод прокрутки» и анализирует результат. Сторонние службы не участвуют, поэтому вы сохраняете свои учетные данные и сообщения в секрете.
Если вы хотите использовать ту же логику для создания собственной программы для извлечения DM, основная идея заключается в том, чтобы делать запросы в цикле, вызывая следующий URL-адрес с допустимым auth_token
значением cookie для аутентификации и анализируя ответ json:
https: / /twitter.com/messages/with/conversation?id=1337&max_entry_id=1337
max_entry_id
Значение не требуется для первого запроса. Вам нужно использовать значение min_entry_id
переменной в ответе как новое max_entry_id
в каждой последующей итерации, чтобы получить следующие 20 (более старых) твитов. Когда max_entry_id
нет в ответе json, вы находитесь в начале потока.