# discord聊天自动化机器人（Python脚本）

By [dami.eth](https://paragraph.com/@yidakoumi) · 2022-05-07

---

前言
==

Discord 在 NFT 领域，已经成为了必不可少的社群工具。大部分项目会以 Twitter 为媒体宣传，最终沉淀用户到 discord 中，而要想获得白名单，也不得不遵循项目方的一些玩法，比如早期的聊天肝等级。

当然，你完全可以选择雇佣人去帮你做这件事，只要 ROI 跑的正，这种方式往往要比自动化脚本来的更稳妥一些，毕竟是真人行为，相对脚本，封号（封discord）风险降低很多。

但若不想花这份钱，那则么办...这样一来，就有了一个需求，聊天机器人....

当然，这里笔者写的机器人并不是那么智能，发消息的内容相关信息是需要你自行配置的。

ps：底层技术用的 python api 模拟请求。（懂 Python 的小伙伴一看就懂...）

### 什么项目不适合聊天？

举个例子🌰，前一阵的【阿狸NFT】白名单，社群里早期混进了很多机器人，二话不说直接开刷等级，随后规则明确，社群并不是靠肝等级作为白名单的，当遇到社群管理员不定期巡逻时，表明回复指定数字，或者禁言，机器人没办法自己分析这种语义....该机器人是做不到的。

所以，如果遇到以上情况，可以人为的隔段时间看看，手动暂停脚本即可。

### 脚本成果演示

下图是我自己创建的一个 discord 服务器，并且新建了一个名为 gm 的频道：

mirror的gif图片有点问题，可以移步图床链接🔗：

[https://ibb.co/tLzmxtQ](https://ibb.co/tLzmxtQ)

### 代码分享

代码方面，采用的是 Google 的云服务，这样省去了我们自己电脑装环境的一些问题。

打开下面的代码网页之后，用 google 登录，然后回到本篇文章，继续往后看如何配置运行。

[https://colab.research.google.com/drive/1k1MjTw0HaIhXmyHIm-KsHrKECpu9ASPy?usp=sharing](https://colab.research.google.com/drive/1k1MjTw0HaIhXmyHIm-KsHrKECpu9ASPy?usp=sharing)

前置代码配置
======

在正式讲解之前，你需要自行打开上述代码文档，配置三个选项。

分别是【**channel id（频道id）**】，【**机器人发送消息的内容**】，以及最重要的 【**authorization 认证**】。

我们一个个来说。

### 1、channel id（频道id）

当我登录 discord 后，加入了一个 discord 服务器后，并且进入了某个频道：

你当前的网址 url 是这样的：

discord.com/channels/937164774674952222/937370268425400371

那么，channel id 则为 ：937370268425400371

![channel id](https://storage.googleapis.com/papyrus_images/f1bb6213e68021e20a07b4d935e409351c9a7ad8465f7c2ca91cab7e9dead377.png)

channel id

回到我们的代码网页，把下面的配置改为自己的 channel id，这里是可以支持多个频道的，比如 gm 频道，官方中文频道：

![channel id 修改配置](https://storage.googleapis.com/papyrus_images/082ecf813ed05e99e4ec7dbeb6279f70077ce725320debf3bf9196962595f249.png)

channel id 修改配置

配置多个的话，就是下面这个样子，双引号里面是频道id，多个频道用逗号隔开：

`channels_id_list = ["937370268425400371","937370268425400372"]`

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

### 2、机器人发送消息的内容

这里的文字可以替换成自己想让机器人说的，它会随机选择一句话来发送，所以当然是越多越好了，虽然有默认值，但是大家可以按照自己的口味改一改。

比如：

`globals_message_list = ["GM","你好啊","早上好","晚上好","你个大骗子","GN","怎么可能？"]`

![发送消息的配置](https://storage.googleapis.com/papyrus_images/d52c9ce554fbe8d7afbf352e0f33f2f5f62c8b04dfeabc77e0d45b26262fd91f.png)

发送消息的配置

附加项，这里还有 2 个可以自行修改的值，即每条发送消息的间隔时间，像我现在写的时间，就是在 10~30s之间，随机间隔时间去发送，比如上条信息刚发完，有可能下一条信息过了 15s ，才会发送，也可能是 10s，这个是不定的，为了更像的模拟人为嘛：

`time_min = 10`

`time_max = 30`

你要是想让他发送快点，也可以设置成最小是 5，最大是10，这样时间就会缩短了：

![发送消息的时间间隔](https://storage.googleapis.com/papyrus_images/c0666eafabb15dd6f92d6bdfcc4f82ecc6f4c53ea869e524996d74824e638ab4.png)

发送消息的时间间隔

### 3、authorization 认证

这一步至关重要，请保存好您的 authorization 信息，因为有了它，任何人都可以用它对您的账号进行一些 api 层的操作，所以谨慎保管好。

当然，这个信息也会失效，我记得默认的有效期 discord 会保留 7 周（没记错的话...）。

如何获取？打开您的 discord 网页版，在用键盘的快捷键打开谷歌浏览器的【开发者工具】：

Mac的快捷键： option+command+i

Windows的快捷键：ctrl+shift+i

当然，也可以从 Chrome 这里进去：

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

打开后，点到 network（网络）选项页：

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

然后依次点击：

1、 XHR 选项卡

2、再随便点一个频道

3、随便找一个 Name，点击英文字符

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

点开下方的 Name 后，可以看到这样的代码：

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

把 authorization: 后面对应的那串英文，记录下来，放到代码对应的配置项中：

`authorization_list = ["OTI4**************************************GA"]`

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

配置好以上信息，大功告成！~

**再次提醒，authorization 对应的字串非常重要，不要公开！不要公开！不要公开！**

运行代码
====

点击代码左侧的红色运行标志，然后就可以回到你的网页去看是否发送消息啦：

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

成功的话，拉到网页最下面，有信息提示：

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

停止代码
====

停止代码，点终止图标即可：

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

如果点了没反应，可以多点2，3下，会弹出下面这个提示，点击yes：

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

代码停掉后，图标变回开始的图标，说明停止成功：

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

下面的日志，可以把鼠标移动到管理员图标上，就会变成叉子，点击即可清除：

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

其他的一些问题
=======

如果你关掉你的google云服务网页，脚本没有停止的话，程序还是会执行的，具体会执行多久，我自己还没有亲自实验过，官方提示，是12个小时。所以要是怕被管理识别到，还是手动停止掉，再去关闭 google 的云服务。

再者就是发送消息的时间间隔问题，建议不要太短，比如 3s 以下，毕竟要让机器人装的像人一些....

**注：若害怕脚本不稳定（网络ip方面的封号问题），可以用自己的discord小号尝试一段时间，绕开自己常用的主号测试！**

好，以上就是完整的分享了....希望大家可以玩的愉快！

💎 |币圈萌新|NFT学习中|成为科学家的路上|💎

我的Twitter：[https://twitter.com/jacksu15ice](https://twitter.com/jacksu15ice)

---

*Originally published on [dami.eth](https://paragraph.com/@yidakoumi/discord-python)*
