2016-05-04 11 views
2

Ich bin sehr sehr neu in Python und, ja, Tweepy.Tweepy/Wie benutze ich die direct_messages Methode um ältere DMs zu bekommen?

Ich möchte, sagen Sie, sehen Sie den Text aller DMs, die ich seit solcher-und-wie DM erhalten habe.

import tweepy 

consumer_key = "XXXX" 
consumer_secret = "YYY" 

access_token = "ZZZ" 
access_token_secret = "AAA" 

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 

api = tweepy.API(auth) 


since_id = "11223344556677889" 
#This is the ID of a month-old DM. I want to get "all" DMs since then, tho I think I'm limited to 200 per call huh? 

direct_messages = tweepy.Cursor(api.direct_messages, since_id=since_id).items() 

for dm in direct_messages: 
     print dm.text 

Dies gibt mir die neuesten 200 DMs. Das ist nicht was ich will. Ich möchte die alten DMs, beginnend mit since_id.

FWIW, ich weiß, das DM existiert, weil diese es richtig zurückgibt:

dm = api.get_direct_message(since_id) 
    print dm.text 
+0

versuchen, auch dieses Problem zu umgehen. Ich bekomme auch nur die ersten 200 DM. Versucht, max_id-Parameter für api.direct_messages zu verwenden und dort die ID der 200. Nachricht zu übergeben, aber ich bekomme diese 200ste Nachricht noch einmal. – Paul

Antwort

0

Es sieht aus wie es eine Einschränkung Twitter-API ist:

Liefert die 20 letzten direkten gesendeten Nachrichten der authentifizierende Benutzer . Enthält detaillierte Informationen zum Absender und Empfänger Benutzer. Sie können bis zu 200 direkte Nachrichten pro Anruf anfordern, und nur die letzten 200 DMs sind über diesen Endpunkt verfügbar.

https://dev.twitter.com/rest/reference/get/direct_messages