近几年来电报可是比微信流行多了,开放性也是比微信强多了,提供了很多api基本可以在上面做任何事了。
不像是微信还得靠大佬pj才能稍微实现机器化一些行为,今天就教大家怎么创建一个自己的电报机器人,可以用来做很多事情,具体就靠各位自己开发了。
电报机器人
平常做这种小玩意我基本上都是用go来开发了,移植比较方便。
OK下面正式开始我们本文的教程,注意:以下教程需要科学上网,没有条件的小伙伴可以退出去了。
首先你需要有个电报账号。安卓用户直接网上搜索下载即可,苹果用户可能就需要切换到漂亮国区才能在商店里下载。如果没有漂亮国账号的话可以看下我的这篇文章——
新装的电报默认是英文且不支持中文,可以别人开发的插件包来改成中文,这个是一个中文插件包——
创建一个机器人
找到BotFather
让他帮你创建一个机器人,在对话里输入/newbot
即可,然后再输入机器人的名字就能创建成功了。
创建完成后机器人之父就会给你这个机器人的token
,这个是获取机器人所有信息的关键,后续会用到。
记住不要让别人知道你机器人的token,否则他也能操作你的机器人了。
机器人开发
我们的机器人已经创建完成且获取到了机器人的token,那么现在就可以具体开发机器人逻辑了。
网上有很多维护的机器人api,咱就不重复造轮子了,直接拿来!
这里我用的是开源项目——
更新及时,代码一目了然,推荐推荐!!!start不是很多,大家可以给作者点点。
package main
import (
"context"
"os"
"os/signal"
"github.com/go-telegram/bot"
"github.com/go-telegram/bot/models"
)
// Send any text message to the bot after the bot has been started
func main() {
ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt)
defer cancel()
opts := []bot.Option{
bot.WithDefaultHandler(handler),
}
b, err := bot.New("YOUR_BOT_TOKEN_FROM_BOTFATHER", opts...)
if err != nil {
panic(err)
}
b.Start(ctx)
}
func handler(ctx context.Context, b *bot.Bot, update *models.Update) {
b.SendMessage(ctx, &bot.SendMessageParams{
ChatID: update.Message.Chat.ID,
Text: update.Message.Text,
})
}
使用方式作者文档已经写的很完美了,还给了一个鲜明的例子。上面这个代码运行后,只要你给机器人发送任何文本消息,机器人就会给你回复你发的消息,感兴趣的可以试试。
在此基础上你可以增加各种逻辑来实现你想要的效果,比如我就把原来的网盘搜索功能移植到这个机器人上面了,通过/s+资源名称
即可进行搜索。
对了电报的api国内访问不到,本地调试贼恶心,不知道小伙伴有没有好的方法,实在太难受了。
我的机器人,,建议阅读原文
后双击打开链接即可自动跳转。
md骗子这么多,太少了就不爆他了(/= _ =)/~┴┴