创建机器人
在telegram中我们可以通过和一个名为BotFather的机器人交互来申请我们自己的机器人,具体步骤如下
- 添加BotFather为好友
- 打开和botfather的对话框发送 /newbot
输入机器人名称 -> 机器人ID_bot 或 机器人IDBot
这一步过后botfather会提示你输入你要创建的机器人的名字,这个名字可以随意,是我们称呼它的名字 - 设置自定义机器人的名字(这个名字不同于上一步的名字,这个名字是唯一的)结尾必须是_bot或者Bot,不能包含中文, 标点符号
如果上一步执行成功那么botfather会返回该机器人的token,大概长这样
123456789:ABCDEfghiJK4314daDSadSa7
记住这个token,到这里机器人就创建好了
开启群消息可访问权限
- 打开和botfather的对话框发送 /mybots 选择需要设置的机器人
- 依次点击Bot Settings -> Group Privacy -> Turn off
- 使Turn off 更改为 Turn on 状态即可
将机器人添加到群组里
进入机器人信息页面,点击更多,点击添加到群组,选择一个群组即可
获取群组chat_id#
通常来说我们都需要让机器人在一个群组里工作,所以首先我们需要将机器人添加到我们指定的群组,在群组里发送随意消息并@这个机器人,比如我的机器人
hello @isnppBot
然后浏览器打开这个链接,注意替换为你的token
https://api.telegram.org/bot/getUpdates
你看到的是一个json,格式如下
{
"ok": true,
"result": [
{
"update_id": 414941268,
"message": {
...
},
"chat": {
"id": -465512321,
...
},
...
}
]
}
从中找到chat.id这就是当前群组的id,以后发消息就是发到这个id.
机器人发送请求
请求接口
telegram发送消息的方式类似与钉钉机器人,都是向一个api发送http请求,而且对于同一个APItelegram支持GET和POST两种请求方式.请求的api格式如下
https://api.telegram.org/bot<token>/<method>
其中token为你的机器人token,method为telegram给定的方法,在获取群组chat_id那一步就使用了telegram的其中一个方法(getUpdates),其他方法后面会介绍
携带参数
请求api时有些方法需要携带参数,telegram支持的传参方式/类型如下
URL查询参数
application/x-www-form-urlencoded
application/json
multipart/form-data(上传文件使用这个content-type)
获取响应
对于每次请求telegram都会有一个响应,响应的内容是一个json,格式如下
{
"ok": true,
"result": ...
}
其中返回的result可以是telegram定义的对象或者是对象的列表