Używam następujący kod do przesyłania wiadomości bezpośrednio odbierane przez mojego konta Twitter -:żywo Twitter bezpośrednie komunikaty
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy import API
from tweepy.streaming import StreamListener
# These values are appropriately filled in the code
consumer_key = ""
consumer_secret = ""
access_token = ""
access_token_secret = ""
class StdOutListener(StreamListener):
def __init__(self):
self.tweetCount = 0
def on_connect(self):
print("Connection established!!")
def on_disconnect(self, notice):
print("Connection lost!! : ", notice)
def on_data(self, status):
print("Entered on_data()")
print(status, flush = True)
return True
def on_direct_message(self, status):
print("Entered on_direct_message()")
try:
print(status, flush = True)
return True
except BaseException as e:
print("Failed on_direct_message()", str(e))
def on_error(self, status):
print(status)
def main():
try:
auth = OAuthHandler(consumer_key, consumer_secret)
auth.secure = True
auth.set_access_token(access_token, access_token_secret)
api = API(auth)
# If the authentication was successful, you should
# see the name of the account print out
print(api.me().name)
stream = Stream(auth, StdOutListener())
stream.userstream()
except BaseException as e:
print("Error in main()", e)
if __name__ == '__main__':
main()
jestem w stanie dostać swoje nazwisko drukowanej, jak również „to połączenie!” wiadomość.
Ale kiedy wysyłam bezpośrednią wiadomość do mojego profilu z profilu mojego znajomego, żadna metoda nie jest wywoływana.
Chociaż za każdym razem, gdy tweetuję coś z mojego profilu, jest ono drukowane poprawnie przez program.
Ja i mój przyjaciel śledzimy się wzajemnie na Twitterze, więc nie powinno być żadnych problemów z bezpośrednimi uprawnieniami do wiadomości.
Jaki jest właściwy sposób na zrobienie tego?
Ponadto, jeśli w ogóle nie można tego zrobić przy użyciu Tweepy, jestem gotowy do użycia dowolnej innej biblioteki Pythona.
Używam Tweepy 3.3.0 i Python 3.4 na Windows 7.