Quando o Twitter lançou o recurso Mensagens diretas, não foi possível recuperar mensagens antigas devido a escolhas e limitações técnicas. No entanto, eles nunca foram excluídos e agora é possível ler qualquer uma das mensagens postadas em uma conversa usando Mensagens Diretas.
Infelizmente, os DMs não fazem parte do seu arquivo (porque acho que seria necessário conter tweets de outras pessoas das suas conversas para fazer sentido). Consequentemente, a resposta do silpol não está correta no momento porque você não poderá recuperar seus DMs dessa maneira no momento.
Se você deseja apenas ler ou fazer o download deles para mantê-los offline, há três maneiras de fazer isso:
- Use a API do Twitter e lide com suas limitações: somente as 200 Mensagens Diretas mais recentes podem ser recuperadas.
- Role para cima manualmente na conversa em um navegador ou no seu telefone. Este método será suficiente para conversas pequenas, mas não será confiável para conversas grandes.
- Use uma ferramenta para simular a navegação de uma conversa e analisar o resultado.
Talvez eu possa ajudá-lo com a terceira ideia. Criei uma ferramenta ( https://github.com/Mincka/DMArchiver ) para baixar minhas mensagens diretas, com a capacidade de também baixar as imagens e GIFs enviados (como MP4).
Como não depende da API, é possível baixar mais de 200 mensagens. O script apenas simula o "método de rolagem" e analisa o resultado. Nenhum serviço de terceiros está envolvido; portanto, você mantém suas credenciais e mensagens privadas.
Se você deseja usar a mesma lógica para criar seu próprio programa para recuperar os DMs, a idéia principal é fazer solicitações em loop chamando a seguinte URL com um auth_token
valor de cookie válido para a autenticação e analisar a resposta json:
https: / /twitter.com/messages/with/conversation?id=1337&max_entry_id=1337
O max_entry_id
valor não é necessário para a primeira solicitação. Você precisa usar o valor da min_entry_id
variável na resposta como o novo max_entry_id
em cada iteração subsequente para obter os próximos 20 tweets (mais antigos). Quando max_entry_id
não está na resposta json, você está no início do encadeamento.