Telegram Bot 搭建
这是我已经搭建好的可以和我联系咯
https://t.me/paulu_bot
下面就进入正题开始搭Telegram Bot,至于为啥不选QQ/微信的机器人呢?
因为Telegram Bot的创建非常简单,Bot的API非常全面,并且完全免费。
QQ/微信的机器人用起来限制太多啦...
前期准备:
- telegram账号
- 谷歌账号
- 一丢丢的编程基础
- 酸酸乳或其它魔法小道具(大陆)
搭建步骤:
- 登录Telegram,并找到@BotFather
我们使用/new bot指令 ,并按照指示为你的Bot取个昵称以及用户名(Bot的用户名必需以bot结尾)
然后你就创建好了你的第一个Telegram Bot!恭喜,是不是特别简单?
此时BotFather会给你一个非常非常重要的东西——Bot token,注意千万要保管好它哦!
- OK,我们有了Bot和操作它使用的token之后能做些什么了呢?
https://core.telegram.org/bots/api​
↑来,点进去,然后你就能看见密密麻麻Telegram官方发布支持其Bot的所有API
别慌!我们需要用的方法只有一点点,别急着关文章,我们继续往下操作...
其实这时我们的Bot已经可以取得用户发的讯息了,我们先向Bot随便发点什么东西(当然此时它还不会回复),然后在浏览器中输入:
https://api.telegram.org/bot(token)/getUpdates
(token)请换成上面或取的token
你就能看见自己和Bot的对话记录,例如:
{
ok: true,
result: [
{
update_id: xxx,
message: {
message_id: 2,
from: {
id: xxx,
is_bot: false,
first_name: "xxx",
username: "xxx",
language_code: "zh-hans"
},
chat: {
id: xxx,
first_name: "xxx",
username: "xxx",
type: "private"
},
date: xxx,
text: "Hello"
}
}
]
}
这种方法虽然可以或取讯息,但是要做到Bot随时使用,频繁调用getUpdates方法会非常浪费资源。因此我们使用另一种方法设置Webhook,即向 Telegram 设定一组 callback url,只要有用户向你的Bot发送讯息,Telegram 就会把用户讯息连同元数据 传送到你设定的 url 。
- 这时就轮到咱们的谷歌账号派上用场啦,Telegram要求callback url所在的服务器必需要有SSL证书,而我们目前并没有也没打算去搭建服务器。所以...
打开浏览器,输入http://script.google.com新建脚本
我们直接使用gs开发就可以啦,谷歌的服务器自然是有SSL证书的。function doPost(e){
var dataFromTelegram = { "method": "post", "payload": e.postData.contents } var body = JSON.parse(e.postData.contents); body.message.chat.id = body.message.chat.id + ''; var payload = preparePayload(body); var data = { "method": "post", "payload": payload } var dataParam = { "method": "post", "payload": payload } UrlFetchApp.fetch("https://api.telegram.org/botYour_bot_code/", data); } function preparePayload(body){ var payload; if (body.message.text){ payload = { "method": "sendMessage", "chat_id": body.message.chat.id, "text": body.message.text, } } else if (body.message.sticker){ payload = { "method": "sendSticker", "chat_id": body.message.chat.id, "sticker": body.message.sticker.file_id } } else if (body.message.photo){ array = body.message.photo; text = array[1]; payload = { "method": "sendPhoto", "chat_id": body.message.chat.id, "photo": text.file_id } } else { payload = { "method": "sendMessage", "chat_id": body.message.chat.id, "text": "Try other stuff" } } return payload }
我们把代码复制到上面新建的脚本当中,保存并点击左上角的发布-部署为网络应用,把权限改为任何人甚至匿名,确定。
你就得到了具有SSL凭证的callback url啦!
- 最后一步:set Webhook
打开浏览器,把上面或取的token和callback url放到下边网址对应的位置
https://api.telegram.org/bot(token)/setwebhook?url=callback url
随后浏览器便会返回
{"ok":true,"result":true,"description":"Webhook was set"}
恭喜!Bot搭建完成。
再次打开Bot的聊天界面,你会发现它已经会鹦鹉学舌啦!- 上一篇: win10自带iis架设webdav服务器
- 下一篇: E5SubBot搭建
- 最后一步:set Webhook