一个tweetbot的教程

没什么用但是挺好玩的www

本来在学python的,结果玩起了twitter的api,简直有毒

现在想实现的效果就是转推Twitter上一些画师的图片,还有就是对每一个回复这个账号的人回复一句喵喵喵(

以后还想用机器学习搞一点东西

我准备用的是tweepy

首先要twitter的开发者认证才能得到该账号的api

可以在 https://developer.twitter.com 获取开发者认证

然后create a app 就可以得到该app的Consumer API keys和Access token & access token secret

1
2
3
4
5
6
7
8
9
import tweepy

ck = 'xxxx'
cks = 'xxxx'
at = 'xxxx'
ats = 'xxxx'

auth = tweepy.OAuthHandler(ck, cks)
auth.set_access_token(at, ats)

这样授权就算完成了

api = tweepy.API(auth, proxy="127.0.0.1:xxxx")

由于twtter被xxx了,就用代理的http端口

api.update_status('test')

可以用这个测试一下有没有用

然后就是色图的转推了(

先判断画师有没有发推,然后判断发送的是否是图片,如果是,就转推。

接下来是reply

我们知道,tweet都有对应的id,如果想回复某一tweet

api.update_status('@xxxx ACK',in_reply_to_status_id = tweetid)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
while True:
try:
for tweet in tweepy.Cursor(api.home_timeline).items(18):
try:
if tweet.entities['user_mentions'][0]['screen_name'] in user:
if 'media' in tweet.entities:
tweet.favorite()
else:
print(tweet.text)
if tweet.text.find('@xxxx') != -1:
api.update_status('@' + tweet.user.screen_name + '喵喵喵',in_reply_to_status_id=tweet.id)
else:
pass
except Exception as e:
pass
except tweepy.TweepError:
time.sleep(60*15)
time.sleep(61)

user里面可以是你喜欢的画师的用户名

采用的是轮询

twitter的api有限制,每15分钟只能有15次

Author: Azusa
Link: http://azukatze.moe/2019/02/15/tweetbot/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.