Cuando Twitter lanzó la función de Mensajes directos, no fue posible recuperar mensajes antiguos debido a elecciones técnicas y limitaciones. Sin embargo, nunca se han eliminado y ahora es posible leer cualquiera de los mensajes publicados en una conversación usando Mensajes directos.
Lamentablemente, los DM no son parte de su archivo (porque supongo que requeriría contener tweets de otras personas de sus conversaciones para tener sentido). En consecuencia, la respuesta de silpol actualmente no es correcta porque no podrá recuperar sus DM de esta manera por el momento.
Si solo desea leerlos o descargarlos para mantenerlos fuera de línea, hay tres formas de hacerlo:
- Use la API de Twitter y lidie con sus limitaciones: solo se pueden recuperar los últimos 200 mensajes directos.
- Desplácese hacia arriba manualmente en la conversación en un navegador o en su teléfono. Este método será suficiente para conversaciones pequeñas pero poco confiable para conversaciones grandes.
- Use una herramienta para simular la navegación de una conversación y analizar el resultado.
Quizás pueda ayudarte con la tercera idea. He creado una herramienta ( https://github.com/Mincka/DMArchiver ) para descargar mis mensajes directos, con la capacidad de descargar también las imágenes y GIF cargados (como MP4).
Debido a que no depende de la API, es posible descargar más de 200 mensajes. El script simplemente simula el "método de desplazamiento" y analiza el resultado. No hay ningún servicio de terceros involucrado, por lo que mantiene sus credenciales y mensajes privados.
Si desea utilizar la misma lógica para crear su propio programa para recuperar los DM, la idea principal es realizar solicitudes en bucle llamando a la siguiente URL con un auth_token
valor de cookie válido para la autenticación y analizar la respuesta json:
https: / /twitter.com/messages/with/conversation?id=1337&max_entry_id=1337
El max_entry_id
valor no es obligatorio para la primera solicitud. Debe usar el valor de la min_entry_id
variable en la respuesta como nuevo max_entry_id
en cada iteración posterior para obtener los siguientes 20 tweets (más antiguos). Cuando max_entry_id
no está en la respuesta json, estás al comienzo del hilo.