Skip to content

Commit 120ef73

Browse files
authored
📝Add some documentation details (#372)
* 📝Add documentation details * 📝Fix some documentation link
1 parent f54d6ad commit 120ef73

File tree

6 files changed

+73
-137
lines changed

6 files changed

+73
-137
lines changed

docs/how-to/how-to_add_friendship.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
## TODO
1+
> TODO: how to add friend

docs/how-to/how-to_introduction.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
## 这里主要放一系列具体的教程,给出一个list,以及跳转链接
1+
## 这一节内容为wechaty的进阶使用
22

3-
- 如何添加好友
4-
- 如何关键字入群
5-
- 如何完成自动回复
6-
- 如何检索群聊联系人
7-
- 如何完成任务调度
8-
- 如何完成群消息同步
9-
- 如何使用Rasa Sever
10-
- 如何使用Github Webhook插件
11-
- 如何使用Gitlab Webhook插件
3+
- [如何添加好友](./how-to_add_friendship.md)
4+
- [如何关键字入群](./how-to_room_inviter.md)
5+
- [如何完成自动回复](./how-to_auto_reply.md)
6+
- [如何检索群聊联系人](./how-to_finder.md)
7+
- [如何完成任务调度](./how-to_scheduler.md)
8+
- [如何完成群消息同步](./how-to_message_forward.md)
9+
- [如何使用Rasa Sever](./how-to_rasa.md)
10+
- [如何使用Github Webhook插件](./how-to_github_webhook.md)
11+
- [如何使用Gitlab Webhook插件](./how-to_gitlab_webhook.md)

docs/how-to/how-to_scheduler.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
TODO: 任务调度框架
1+
> TODO: 任务调度框架

docs/how-to/how-to_use_plugin.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
### 一、插件列表
88
> 以下只是列表,具体的使用方法以及在前几篇文章中进行了说明,此处只是声明可能存在的插件,以及插件的调用方式。
99
10-
- [关键字入群插件](/plugins/keywords/)
11-
- [自动回复插件](/plugins/auto-reply)
12-
- [任务调度插件](/plugins/auto-reply)
13-
- [群消息同步插件](/plugins/message-forward.md)
14-
- [Rasa Rest Connector](/plugins/rasa)
15-
- [Github Webhook插件](/plugins/github-webhook)
16-
- [Gitlab Webhook插件](/plugins/gitlab-webhook)
10+
- [关键字入群插件](./how-to_room_inviter.md)
11+
- [自动回复插件](./how-to_auto_reply.md)
12+
- [任务调度插件](./how-to_scheduler.md)
13+
- [群消息同步插件](./how-to_message_forward.md)
14+
- [Rasa Rest Connector](./how-to_rasa.md)
15+
- [Github Webhook插件](./how-to_github_webhook.md)
16+
- [Gitlab Webhook插件](./how-to_gitlab_webhook.md)

docs/tutorials/index.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
1-
## 快速开始一个简单的应用
2-
### 本节内容中 将手把手快速指导你开始运行一个消息机器人。
3-
### 暂时还只有微信机器人相关的教程,后面可以补足: 微信公众号,钉钉,飞书,Whatsapp,Gitter这几种
1+
## 快速开始一个简单的机器人应用
2+
- 在本节内容中 将手把手快速指导你开始运行一个消息机器人。
43

54
### 运行一个微信机器人
6-
运行微信机器人有多种协议可以使用,有以下三种不同的协议方式, 每个协议都有不用的特点,如果你不知道选什么,就从Padlocal协议开始吧
7-
> 此处最好放上几种协议的对比,以及具体的各自如何快速上手的的跳转链接
8-
- 使用Padlocal协议(推荐使用)
5+
运行微信机器人有多种协议可以使用,有以下三种不同的协议方式, 每个协议都有不用的特点,如果你不知道选什么,建议使用Padlocal协议来运行你的第一个微信机器人
6+
7+
- [使用Padlocal协议(推荐使用)](./use_padlocal_getting_started.md)
98
- 使用Paimon协议
10-
- 使用免费Web协议
9+
- 使用免费Web协议(目前已不可用)
10+
- 使用puppet-xp协议(仅windows下可用)
1111

1212
### 运行一个微信公众号机器人
13+
- TODO
1314

1415
### 运行一个钉钉机器人
16+
- TODO
1517

1618
### 运行一个Whatsapp机器人
19+
- TODO
1720

18-
### 运行一个Gitter机器人
21+
### 运行一个Gitter机器人
22+
- TODO

docs/tutorials/use_padlocal_getting_started.md

Lines changed: 42 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22

33
底层的对接实现是基于TypeScript语言,故无法直接在python-wechaty中使用该服务。可是Wechaty社区能够直接将其转化成对应的服务让多语言调用,从而实现:底层复用的特性。
44

5-
整体步骤分为三步
5+
整体步骤分为两步
66

77
* 申请一个TOKEN
8-
* 使用Docker启动Padlocal网关服务
9-
* 使用python-wechaty连接服务并启动启动微信机器人
8+
* 部署模板机器人
109

1110

1211
## 一、申请一个TOKEN
@@ -15,145 +14,78 @@
1514
- 那如何获取长期Token呢?详细请看:[Everything-about-Wechaty](https://github.com/juzibot/Welcome/wiki/Everything-about-Wech aty)
1615

1716

18-
## 二、使用Docker启动Padlocal网关服务
19-
- 这一步可以在本机运行也可以在服务器上运行。
20-
- 如果在服务器端运行,则须注意服务器相应端口防火墙规则需要打开
21-
- 如果是在本地测试运行,则需要在启动机器人时指定环境变量SERVICE_ENDPOINT
2217

23-
### 2.1 脚本
18+
## 二、 部署模板机器人
2419

25-
```shell
26-
# 设置环境变量
27-
28-
export WECHATY_LOG="verbose"
29-
export WECHATY_PUPPET="wechaty-puppet-padlocal"
30-
export WECHATY_PUPPET_PADLOCAL_TOKEN="puppet_padlocal_XXXXXX"
31-
32-
export WECHATY_PUPPET_SERVER_PORT="9001"
33-
# 可使用代码随机生成UUID:import uuid;print(uuid.uuid4());
34-
export WECHATY_TOKEN="1fe5f846-3cfb-401d-b20c-XXXXX"
35-
36-
docker run -ti \
37-
--name wechaty_puppet_service_token_gateway \
38-
--rm \
39-
-e WECHATY_LOG \
40-
-e WECHATY_PUPPET \
41-
-e WECHATY_PUPPET_PADLOCAL_TOKEN \
42-
-e WECHATY_PUPPET_SERVER_PORT \
43-
-e WECHATY_TOKEN \
44-
-p "$WECHATY_PUPPET_SERVER_PORT:$WECHATY_PUPPET_SERVER_PORT" \
45-
wechaty/wechaty:0.65
46-
```
20+
- 现在的你已经拥有了一个Padlocal Token. 接下来则需要使用它启动我们的第一个机器人了。
21+
- 在这里,我们直接使用[python-wechaty-template](https://github.com/wechaty/python-wechaty-template)项目来快速的部署我们的第一个机器人。
22+
- **在此之前请确保你的机器上已经安装并运行了[docker](https://www.docker.com/get-started)服务**
4723

48-
> 在此我默认所有的人都对[Docker](https://www.docker.com)的基本使用已经有了一定的了解,否则可以花几分钟去看看其[文档](https://www.docker.com/get-started)熟悉一下。
24+
### 1. clone 模板机器人项目
4925

50-
### 2.2 参数说明
26+
```she
27+
git clone https://github.com/wechaty/python-wechaty-template && cd python-wechaty-template
28+
```
5129

52-
* **WECHATY_PUPPET**: **标识**使用的哪个协议,一般和`token`类型的一一对应。比如当使用`padlocal`协议的话,那这个就是`wechaty-puppet-padlocal`,如果使用`web`协议的话,那这个就是`wechaty-puppet-wechat`
53-
* **WECHATY_PUPPET_PADLOCAL_TOKEN**: 这个协议是用来连接Padlocal的服务,目前是付费的。也就是在第一步中申请的。
54-
* **WECHATY_PUPPET_SERVER_PORT**: 网关服务的接口,提供给`python-wechaty`来连接调用,如果服务部署在云服务器上,则需要保证该端口的可访问性。
55-
* **WECHATY_TOKEN**: 当开发者在自己机器上启动一个网关服务时,需要通过`TOEKN`来做身份验证,避免服务被他人窃取。
30+
### 2. 启动padlocal网关
5631

57-
以上代码只需要修改三个参数:`WECHATY_PUPPET_PADLOCAL_TOKEN`, `WECHATY_PUPPET_SERVER_PORT`, `WECHATY_TOKEN` 即可成功启动Token网关服务。
32+
- 参数为申请的token,下面示例中token不可用,请换上你申请的token
5833

59-
那网关服务启动成功之后,只需要编写`python-wechaty`的代码来连接即可。
34+
```shel
35+
./start_gateway_docker.sh puppet_padlocal_d764cc8d231747b18b9ee5540dadd55c
36+
```
6037

38+
### 3. 启动机器人
6139

40+
- 上一步会启动一个docker,并运行Gateway服务,会有持续输出,建议运行在tmux中。
41+
- 开起一个新的terminal,并在模板机器人项目路径下运行以下命令
6242

63-
## 三、使用python-wechaty连接服
43+
```shell
44+
make bot
45+
```
6446

65-
### 3.1 本地测试和远端部署
47+
- 初次登陆时,可能需要扫码多次。
6648

67-
当启动网关服务时,`Padlocal`会根据`WECHATY_TOKEN`来在[Wechaty服务接口](https://api.chatie.io/v0/hosties/__TOKEN__)上注册部署机器的`IP``端口`,然后python-wechaty会根据`WECHATY_TOKEN`[Wechaty服务接口](https://api.chatie.io/v0/hosties/__TOKEN__)上获取对应的IP和端口。
49+
### 4. 验证机器人启动成功
6850

69-
可是很多小伙伴在实际开发的过程中,通常会出现`endpoint is not invalid`等错误信息,那是因为开发者有可能在本地启动网关服务或者服务器端口没有开放
51+
- 机器人发送消息`ding`来测试,如果启动成功,则机器人自动回复`dong`,至此你的第一个微信机器人就启动成功了
7052

71-
网关服务的部署通常是分为本地测试和远端部署,前者通常只是为了初学测试,后者是为了生产部署。如果是在生产部署时,只需要设置环境变量:
7253

73-
```shell
74-
export WECHATY_PUPPET_SERVICE_TOKEN=1fe5f846-3cfb-401d-b20c-XXXXX
75-
# or
76-
export TOKEN=1fe5f846-3cfb-401d-b20c-XXXXX
77-
# or
78-
export token=1fe5f846-3cfb-401d-b20c-XXXXX
79-
```
8054

81-
可是如果是在本地测试时,则通过ENDPOINT来找到启动的网关服务。
8255

83-
```shell
84-
export WECHATY_PUPPET_SERVICE_TOKEN=1fe5f846-3cfb-401d-b20c-XXXXX
85-
# or
86-
export TOKEN=1fe5f846-3cfb-401d-b20c-XXXXX
87-
# or
88-
export token=1fe5f846-3cfb-401d-b20c-XXXXX
89-
90-
export WECHATY_PUPPET_SERVICE_ENDPOINT=127.0.0.1:9001
91-
# or
92-
export ENDPOINT=127.0.0.1:9001
93-
# or
94-
export endpoint=127.0.0.1:9001
95-
```
9656

97-
### 3.2 TOKEN的作用
57+
##  三、自定义配置
9858

99-
总而言之:
10059

101-
* 如果是公网环境下,可只需要设置`TOKEN`即可(因为你的token已经注册在chatie server上,故可以获取到目标资源服务器的ip和port)
102-
* 如果是内网环境下,可只需要使用`ENDPOINT`(`localhost:port`)来让python-wechaty连接目标资源服务器。
10360

104-
> 如果是token是padlocal类型,则在python-wechaty程序内部可直接设置`export endpoint=localhost:port`来连接Gateway Server。
61+
### 3.1 使用docker启动的padlocal网关参数说明
10562

106-
当然,以上的写法是使用Bash的方式来设置环境变量,也是可以通过python代码来设置环境变量,详细可看:
63+
- 这些参数在模板机器人项目中的`start_gateway_docker.sh`脚本中配置
10764

108-
```python
109-
import os
110-
os.environ['token'] = "1fe5f846-3cfb-401d-b20c-XXXXX"
111-
os.environ['endpoint'] = "127.0.0.1:9001"
112-
```
65+
* **WECHATY_PUPPET**: **标识**使用的哪个协议,一般和`token`类型的一一对应。比如当使用`padlocal`协议的话,那这个就是`wechaty-puppet-padlocal`,如果使用`web`协议的话,那这个就是`wechaty-puppet-wechat`
66+
* **WECHATY_PUPPET_PADLOCAL_TOKEN**: 这个协议是用来连接Padlocal的服务,目前是付费的。也就是在第一步中申请的。
67+
* **WECHATY_PUPPET_SERVER_PORT**: 网关服务的接口,提供给`python-wechaty`来连接调用,如果服务部署在云服务器上,则需要保证该端口的可访问性。(默认8080)
68+
* **WECHATY_TOKEN**: 当开发者在自己机器上启动一个网关服务时,需要通过`TOEKN`来做身份验证,避免服务被他人窃取。脚本中使用uuid自动生成。具体值可在`.env`文件中查看
11369

114-
### 3.3 机器人启动代码
70+
网关服务启动成功之后,只需要编写`python-wechaty`的代码来连接即可。
11571

116-
> talke is cheep, show you the code
11772

118-
```python
119-
import asyncio, os
120-
from typing import List, Optional, Union
12173

122-
from wechaty_puppet import FileBox # type: ignore
74+
## 四、使用python-wechaty连接远程网关服务
12375

124-
from wechaty import Wechaty, Contact
125-
from wechaty.user import Message, Room
76+
### 4.1 本地测试和远端部署
12677

78+
当启动网关服务时,`Padlocal`会根据`WECHATY_TOKEN`来在[Wechaty服务接口](https://api.chatie.io/v0/hosties/__TOKEN__)上注册部署机器的`IP``端口`,然后python-wechaty会根据`WECHATY_TOKEN`[Wechaty服务接口](https://api.chatie.io/v0/hosties/__TOKEN__)上获取对应的IP和端口。
12779

128-
class MyBot(Wechaty):
80+
可是很多小伙伴在实际开发的过程中,通常会出现`endpoint is not invalid`等错误信息,那是因为开发者有可能在本地启动网关服务或者服务器端口没有开放。
12981

130-
async def on_message(self, msg: Message):
131-
"""
132-
listen for message event
133-
"""
134-
from_contact: Optional[Contact] = msg.talker()
135-
text = msg.text()
136-
room: Optional[Room] = msg.room()
137-
if text == 'ding':
138-
conversation: Union[
139-
Room, Contact] = from_contact if room is None else room
140-
await conversation.ready()
141-
await conversation.say('dong')
142-
file_box = FileBox.from_url(
143-
'https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/'
144-
'u=1116676390,2305043183&fm=26&gp=0.jpg',
145-
name='ding-dong.jpg')
146-
await conversation.say(file_box)
82+
网关服务的部署通常是分为本地测试和远端部署,前者通常只是为了初学测试,后者是为了生产部署。如果是在生产部署时,只需要将模板机器人项目下的.env文件内容在本地保持一致即可。即使用gateway启动时生成的token即可在本地访问远程网关服务。
14783

148-
os.environ['TOKEN'] = "1fe5f846-3cfb-401d-b20c-XXXXX"
149-
os.environ['WECHATY_PUPPET_SERVICE_ENDPOINT'] = "127.0.0.1:9001"
150-
asyncio.run(MyBot().start())
151-
```
152-
### 运行代码
84+
### 4.2 TOKEN的作用
15385

86+
总而言之:
15487

155-
欢迎各位品尝以上代码 🥳
88+
* 如果是公网环境下,可只需要设置`TOKEN`即可(因为你的token已经注册在chatie server上,故可以获取到目标资源服务器的ip和port)
89+
* 如果是内网环境下,可只需要使用`ENDPOINT`(`localhost:port`)来让python-wechaty连接目标资源服务器。
15690

157-
* **相关链接**
158-
* [python-wechaty](https://github.com/wechaty/python-wechaty)
159-
* [python-wechaty-getting-started](https://github.com/wechaty/python-wechaty-getting-started)
91+
> 如果是token是padlocal类型,则在python-wechaty程序内部可直接设置`export endpoint=localhost:port`来连接Gateway Server。

0 commit comments

Comments
 (0)