on_direct_message没有监听使用tweepy的直接消息流

问题描述 投票:0回答:1

on_direct_message永远不会在消息到达时调用。我已经使用python3.7和最新的tweepy库。在推特帐户中,它工作正常,但无法与正在使用的代码段一起使用。但是该代码段可以很好地监听推文。

twitter_stream=Stream(auth,StdOutListener())
print('Stream created...')
twitter_stream.filter(follow=[user.id_str], is_async=True)

NB:读取,写入和直接发送消息的权限。并且所有访问参数都是正确的

StdOutListener是:

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)
python twitter tweepy
1个回答
0
投票

Twitter流API中不支持直接消息(直接消息是User Streams API的一部分,该流已于2018年删除,并由Account Activity API取代。

要实时接收直接消息,您将需要为Account Activity API实现一个webhook处理程序。您可以尝试twitivity库,或查看this Python sample app。 Tweepy没有对此API的内置支持。

© www.soinside.com 2019 - 2024. All rights reserved.