Lorsque Twitter a publié la fonction Messages directs, il n'était pas possible de récupérer les anciens messages en raison de choix techniques et de limitations. Cependant, ils n'ont jamais été supprimés et il est désormais possible de lire n'importe quel message publié dans une conversation à l'aide de Messages directs.
Malheureusement, les DM ne font pas partie de vos archives (car je suppose qu'il faudrait contenir des tweets d'autres personnes de vos conversations pour avoir du sens). Par conséquent, la réponse de silpol n'est actuellement pas correcte car vous ne pourrez pas récupérer vos DM de cette façon pour le moment.
Si vous souhaitez simplement les lire ou les télécharger pour les garder hors ligne, il existe trois façons de procéder:
- Utilisez l'API Twitter et traitez ses limites: seuls les 200 derniers messages directs peuvent être récupérés.
- Faites défiler manuellement dans la conversation dans un navigateur ou sur votre téléphone. Cette méthode sera suffisante pour les petites conversations mais peu fiable pour les grandes.
- Utilisez un outil pour simuler la navigation d'une conversation et analyser le résultat.
Je peux peut-être vous aider avec la troisième idée. J'ai créé un outil ( https://github.com/Mincka/DMArchiver ) pour télécharger mes messages directs, avec la possibilité de télécharger également les images téléchargées et les GIF (au format MP4).
Comme il ne dépend pas de l'API, il est possible de télécharger plus de 200 messages. Le script simule simplement la "méthode de défilement" et analyse le résultat. Aucun service tiers n'est impliqué, vous gardez donc vos informations d'identification et messages privés.
Si vous souhaitez utiliser la même logique pour créer votre propre programme pour récupérer les DM, l'idée principale est de faire des demandes en boucle en appelant l'URL suivante avec une auth_token
valeur de cookie valide pour l'authentification et d'analyser la réponse json:
https: / /twitter.com/messages/with/conversation?id=1337&max_entry_id=1337
La max_entry_id
valeur n'est pas requise pour la première demande. Vous devez utiliser la valeur de la min_entry_id
variable dans la réponse comme la nouvelle max_entry_id
dans chaque itération suivante pour obtenir les 20 tweets suivants (plus anciens). Lorsque max_entry_id
n'est pas dans la réponse json, vous êtes au début du thread.