当用户使用Tweepy鸣叫时收到通知

时间:2018-08-12 21:21:15

标签: python tweepy

我正在使用tweepy在玩一个Twitter机器人。

我已经根据推文中包含的单词(例如我的触发短语)成功完成了过滤代码,例如:

myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=MyStreamListener())
myStream.filter(track=['my trigger phrase'])

这很好用。

但是我希望我的代码在某个用户鸣叫(例如“ someuser”)时进行过滤。

我尝试过:

myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=MyStreamListener())
myStream.filter(follow=['someuser'])

但是当我运行代码时,一两秒钟后,它停止了,没有任何输出。

任何帮助都会很棒。

总而言之,我希望每当某个用户鸣叫时就可以执行某些操作。


整个代码:

import tweepy
import time
import sys
import inspect

consumer_key = 'xxxxxxxxxxxxxxxxxxx'
consumer_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
access_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
access_token_secret = 'xxxxxxxxxxxxxxxx'

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

api = tweepy.API(auth)

class MyStreamListener(tweepy.StreamListener):
    def on_status(self, status):
            if  status.user.screen_name.encode('UTF-8').lower() == 'someuser':
                print 'TWEET:', status.text.encode('UTF-8')
                print 'FOLLOWERS:', status.user.followers_count
                print time.ctime()
                print '\n'

myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=MyStreamListener())
myStream.filter(follow=['someuser'])

2 个答案:

答案 0 :(得分:0)

问题只是我试图输入:

follow = ['someuser']

但是我需要使用用户ID号,而不仅仅是屏幕名称。

您可以在各种网站上找到任何屏幕名称的用户ID号。

答案 1 :(得分:0)

我用它来检索ID_user以在Stream中关注

auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = API(auth) 
user = api.get_user(screen_name = '@screenametofollow')
print ("User id:" + str(user.id))
....
stream.filter(follow=str(user.id))