首页 > 解决方案 > 回复特定用户的 Twitter 机器人

问题描述

我想使用 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)

标签: pythontwitterbotstweepy

解决方案


您每次都必须自己运行 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

推荐阅读