python - 回复特定用户的 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)
解决方案
您每次都必须自己运行 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
推荐阅读
- jsp - Spring Tool Suite IDE 未突出显示 JSP 文件
- smartcard - 如何恢复配置错误的 JCOP 卡
- php - 不支持的驱动程序 [mongodb] laravel 5.4.36
- html - 调整块大小时固定表大小
- symfony - 错误:“内核”服务是合成的,需要在启动时设置才能使用
- java - 休眠标准别名与投影减去第二个投影
- vagrant - 已挂载共享文件夹但未显示 vagrant
- python - 如何使用 tensorflow/models/deeplab 在自己的数据集上进行训练?
- python - 在 Pandas DataFrame 中加载 .txt 文件,并在文本之间添加分隔线。
- .net - MSXML2.ServerXMLHTTP.6.0 发送请求 - 与服务器的连接异常终止 - win7