# 教你开发一个简易的推特白名单机器人

By [小6](https://paragraph.com/@6-3) · 2022-03-16

---

### 背景：

推特上有很多有影响力的大V做一些白名单的活动，只要完成关注点赞转推就有机会获得白名单，很多小伙伴每天做很多这样的任务，但是从来都没被抽中过，原因很简单，机器人太多了，那么你想不想也要一个自己的机器人呢？

### 前提：

*   有一定的开发基础(python)
    
*   有一个推特开发账号（[关于推特开发者账号申请的问题和经验](https://blog.csdn.net/qq_37206171/article/details/104260059)）
    

### 技术栈：

*   python3
    
*   python类库：tweepy
    

### 一，需求分析：

做一个推特机器人，自动完成白名单任务。

白名单任务大致有：关注，点赞，转推。（太复杂的不在本次教程之内）

任务拆解：

1，关注功能

2，点赞功能

3，转推功能

除以上功能还需要找到发白名单活动的推文。

一般白名单活动的推文中会有以下几个关键字：

    Follow,Like,RT,Tag,Retweet,FOLLOW,LIKE,RETWEET,TAG,关注,转推,喜欢
    

### 二，设计

机器人所要做的事就是 认证→ 找推文→ 关注→ 点赞→ 转推→ 找下一条推文

以下是设计流程图：

![](https://storage.googleapis.com/papyrus_images/83a8ab8bacaef630a6408883f34d51400bcfca68f1f025df046037d898f36b20.png)

### 三，调研

需要调研四个功能，

*   认证
    
*   找推文
    
*   关注
    
*   点赞
    
*   转推
    

* * *

### 1，认证和找推文

只要你学习过tweepy的话，认证和找推文是tweepy最基本的功能。

以下代码，能完成认证，然后打印出当前时间点home上展示的第一条推文：

![](https://storage.googleapis.com/papyrus_images/873ad1822748713926159640ed01e498c6e163091147b87b3b25f7fae70f740d.png)

执行结果（红框内就是第一条推文）：

![](https://storage.googleapis.com/papyrus_images/95d77cdba92b3065c78f172e4bdfa98d70730ecb8bf0acc46cb84ad1740c26f6.png)

_这里可参照tweepy的API文档：_[_get-tweet-timelines_](https://docs.tweepy.org/en/stable/api.html#get-tweet-timelines)

但是有了推文，我不知道是谁发的哪条推文，我就不知道关注谁，给哪条推文点赞，和转推哪条推文？

先解析一下一条推文必要的属性

![](https://storage.googleapis.com/papyrus_images/11ae8eca2a405f5a55ee4d3e4b4cd2d8dcce10a411acd8f73df8eb3ddf6fb11f.png)

我们需要的一条推文的最基本元素有：用户标识(**screen\_name**)，推文ID，推文内容

**那么这条推文的基本信息如下：**

![](https://storage.googleapis.com/papyrus_images/e3dd022a086b8b98bb992a0ad84f1d2f31b3eb5d4ea59ec2520a13f0d5d268b7.png)

重新改一下代码：

![](https://storage.googleapis.com/papyrus_images/0b5067c4b7eb5f3ce22642686788aea91f3b6f9476689edcccb86969236934e5.png)

执行结果中想要的信息都出来了：

![](https://storage.googleapis.com/papyrus_images/8df1dfdaaa0731fda15acb189aa3fed2bece445d8586596aaace8676bc9738c3.png)

* * *

### 2，关注

有了上面取得的用户标识(screen\_name)，就很容易做**关注**了。使用以下API就可以关注了。

    api.create_friendship(screen_name=screen_name)
    

API文档: [api.create\_friendship()](https://docs.tweepy.org/en/stable/api.html?highlight=create_friendship#tweepy.API.create_friendship)

先找到一个未关注的人（红框中文字就是用户标识，也就是screen\_name）

![](https://storage.googleapis.com/papyrus_images/cda787feadbb09a51fad3cc342a4f8d81b974164268af6eb2f9ad0defe3b1ace.png)

**执行以下代码，**

![](https://storage.googleapis.com/papyrus_images/e326448dcb48722a08eaf2c661a17a686ee9199987e975cbb8e4c147c9dc0e44.png)

**成功关注了**

![](https://storage.googleapis.com/papyrus_images/65b2dda79542fa354485d34316c3787fe4f34f9cda2b1fbe4dee5783e6d8b5a7.png)

* * *

### 3，点赞

点赞需要知道推文的id，然后使用以下代码

    api.create_favorite(id=tweet.id_str)
    

还记得上面的这个推文吗？

推文ID是：**1496107063281283078**

![](https://storage.googleapis.com/papyrus_images/f65d8997352812b66d9b974cb4048926ff3c7aff634d7e3df5115d5479efbe0b.png)

执行以下代码：

![](https://storage.googleapis.com/papyrus_images/d25fa6078802c28c1af42dc3e58be0ed400279073c1987721e9e4dc3104a2664.png)

执行代码后，推文被点赞了

![](https://storage.googleapis.com/papyrus_images/c37e8550f4da06ab11397758581f76da82abcdd1b5bf0a51e31d9636584d3c97.png)

* * *

### 4，转推

转推使用以下代码：

    api.update_status(
        '转推这条推文',
    attachment_url="https://mobile.twitter.com/mirror_alerts/status/1496107063281283078")
    

![](https://storage.googleapis.com/papyrus_images/d54c338381c03f6cefe341aa9475047c786c0f7f48a95ae5f9320bdf7c26ba6d.png)

执行完以上代码后：

![](https://storage.googleapis.com/papyrus_images/e4a02a1eabe6b3edb03ecec205fbcd3b590a25214d2e911c1db3d017ac39ec74.png)

* * *

### 5，找白名单活动的推文

使用简单python函数就可以找出有白名单活动的推文，触发条件后去做关注，点赞，转推就可以了。

![](https://storage.googleapis.com/papyrus_images/627cacec55c31c09eef5ece23ebe340655be5087d497085c490f9cd1c6e14480.png)

### 四，开发实现

把以上的功能组合起来就可以实现简单的机器人了，这里我只是抛砖引玉，剩下的工作就交给你们了。

* * *

**—— 来自 DFarm Club**

---

*Originally published on [小6](https://paragraph.com/@6-3/TlgROjdTWUQwOb9BIFa3)*
