【问题标题】:Twitter bot that replies to a specific user回复特定用户的 Twitter 机器人
【发布时间】:2021-10-05 06:36:03
【问题描述】:

我想使用 tweepy 编写一个 Twitter 机器人,它会自动回复我所有朋友的推文,但问题是我必须始终自己运行它,请有人向我解释如何做到这一点。 这是我的实际代码:

import tweepy
from keys import keys

CONSUMER_KEY = keys['consumer_key']
CONSUMER_SECRET = keys['consumer_secret']
ACCESS_TOKEN = keys['access_token']
ACCESS_TOKEN_SECRET = keys['access_token_secret']

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)

toReply = "USER" #user to get most recent tweet
api = tweepy.API(auth)

#get the most recent tweet from the user
tweets = api.user_timeline(screen_name = toReply, count=1)

for tweet in tweets:
api.update_status("@" + toReply + " TEXT", in_reply_to_status_id = tweet.id)

【问题讨论】:

    标签: python twitter bots tweepy


    【解决方案1】:

    python脚本每次运行都要自己运行,因为脚本运行完就结束了。

    现在,当您单击run 或输入python myscript.py 时,脚本会运行,检查您朋友的推文并发布一些内容。发送推文后,脚本停止。结束了。

    对此的解决方案可能是将脚本置于无限循环中,并在每个时间段检查推文并使其始终在您的设备上运行。

    当然,当您的 PC 关闭时,该脚本将无法运行,并且您每次打开 PC 时都必须运行该脚本(您也可以自动执行此操作,如果您使用的是 Windows,请使用 TaskScheduler )

    或者你可以将你的代码部署到一个云服务器上,它会一直运行,但这会花费你一些钱。

    看看谷歌云、亚马逊网络服务和微软 Azure,它们是三大云提供商。

    代码如下所示:

    import tweepy
    from keys import keys
    import time 
    
    def check_tweets(): 
        CONSUMER_KEY = keys['consumer_key']
        CONSUMER_SECRET = keys['consumer_secret']
        ACCESS_TOKEN = keys['access_token']
        ACCESS_TOKEN_SECRET = keys['access_token_secret']
        
        auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
        auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
        api = tweepy.API(auth)
        
        toReply = "USER" #user to get most recent tweet
        api = tweepy.API(auth)
        
        #get the most recent tweet from the user
        tweets = api.user_timeline(screen_name = toReply, count=1)
        
        for tweet in tweets:
        api.update_status("@" + toReply + " TEXT", in_reply_to_status_id = tweet.id)
    
    while True: 
        check_tweets()
        time.sleep(60) # 60 seconds
    

    【讨论】:

    • 或者,使用 crontab。
    • 当这个人在我运行脚本后的最后 60 秒内没有发另一条推文时,它会停止,因为它已经回复了它,你能告诉我如何进行无限循环吗?
    猜你喜欢
    • 2023-03-22
    • 2021-04-20
    • 1970-01-01
    • 2021-10-08
    • 2016-06-16
    • 2020-10-11
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多