Gdy Twitter opublikował funkcję Wiadomości bezpośrednie, odzyskanie starych wiadomości nie było możliwe z powodu technicznych możliwości i ograniczeń. Jednak nigdy nie zostały usunięte i można teraz czytać dowolne wiadomości zamieszczone w rozmowie za pomocą wiadomości bezpośrednich.
Niestety DM nie są częścią twojego archiwum (ponieważ wydaje mi się, że będzie to wymagało umieszczania tweetów od innych osób z twoich rozmów). W związku z tym odpowiedź z silpolu jest obecnie niepoprawna, ponieważ na razie nie będziesz w stanie odzyskać swoich DM.
Jeśli chcesz je po prostu przeczytać lub pobrać, aby były offline, możesz to zrobić na trzy sposoby:
- Skorzystaj z interfejsu API Twittera i poradzić sobie z jego ograniczeniami: można pobrać tylko 200 najnowszych wiadomości bezpośrednich.
- Przewiń ręcznie w górę w rozmowie w przeglądarce lub w telefonie. Ta metoda będzie wystarczająca w przypadku małych rozmów, ale niewiarygodna w przypadku dużych.
- Użyj narzędzia do symulacji przeglądania rozmowy i przeanalizuj wynik.
Może mogę ci pomóc z trzecim pomysłem. Stworzyłem narzędzie ( https://github.com/Mincka/DMArchiver ) do pobierania moich bezpośrednich wiadomości z możliwością pobierania przesłanych zdjęć i plików GIF (jako MP4).
Ponieważ nie zależy od interfejsu API, można pobrać ponad 200 wiadomości. Skrypt po prostu symuluje „metodę przewijania” i analizuje wynik. Żadna usługa strony trzeciej nie jest zaangażowana, więc twoje poświadczenia i wiadomości pozostają prywatne.
Jeśli chcesz użyć tej samej logiki do stworzenia własnego programu do odzyskiwania DM, głównym pomysłem jest wysyłanie żądań w pętli poprzez wywołanie następującego adresu URL z prawidłową auth_token
wartością pliku cookie do uwierzytelnienia i przeanalizowanie odpowiedzi JSON:
https: / /twitter.com/messages/with/conversation?id=1337&max_entry_id=1337
max_entry_id
Wartość nie jest wymagane w przypadku pierwszego wniosku. Musisz użyć wartości min_entry_id
zmiennej w odpowiedzi jako nowej max_entry_id
w każdej kolejnej iteracji, aby uzyskać kolejne 20 (starszych) tweetów. Gdy max_entry_id
nie ma odpowiedzi json, jesteś na początku wątku.