on_direct_message не прослушивает прямую потоковую передачу сообщений с использованием tweepy - PullRequest
0 голосов
/ 09 мая 2020

on_direct_message никогда не вызывается, когда приходит сообщение. Я использовал python3 .7 и последнюю библиотеку tweepy. в учетной записи Twitter он работает нормально, но не работает с фрагментом кода, который я использую. Но фрагмент кода хорошо работает для прослушивания твитов.

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)

1 Ответ

0 голосов
/ 11 мая 2020

Личные сообщения не поддерживаются в API потоковой передачи Twitter (они были частью API пользовательских потоков, который был удален в 2018 году и заменен API-интерфейсом активности учетной записи). , вам нужно будет реализовать обработчик веб-перехватчиков для API активности учетной записи. Вы можете попробовать библиотеку twitivity или посмотреть это Python пример приложения . Tweepy не имеет встроенной поддержки этого API.

...