微信公众号:上古的碑
我会在微信公众号上分享各种技术干货,欢迎来玩!
再阅读之前,要求掌握一定的编程基础,了解怎样进行HTTP的请求和怀抱有一颗热爱学习的心。
什么是API
API全称 Application Programming Interface,翻译过来就是 应用程序编程接口。简单点说,它就是一些事先定义好的东西。
API的用途
让开发者无须访问源码又可以访问这些预定好的东西,同时也能方便开发者进行开发。API的使用是否收费取决于放出这些API的组织。
Telegram Bot API 现状
完全免费且官方进行维护。经过几个版本的迭代更新,最新版本的Telegram 的 Bot API已经更新到了 4.6
版本,更新的日期为January 23, 2020
。
在创建Bot的时候,BotFather
同时为你的Bot设立了一个token
,这个token
用于控制Bot,且可随时更换。想要获得token
,在BotFather发送命令/token
,然后选择Bot就可以查询到Bot的token
。
对Bot的所有控制请求都必须通过HTTPS进行,同时还要用官方给定的形式进行请求:https://api.telegram.org/bot<token>/METHOD_NAME
把<token>
换成Bot的token
,同时METHOD_NAME
换成官方API文档里的方法,就可以完成各种各样的控制请求。
例子:https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/getMe
(为什么用getMe方法呢?大概它是编程语言里的Hello world!吧)
Bot支持GET 和 POST 的方式进行请求,还支持以下四种方式传递参数:
对了,所有的METHOD_NAME
大小写都可以,同时要保证所有的请求都是使用UTF-8
。
发送的所有控制请求,Bot的回应都是JSON类型。
例子:使用getMe方法请求后回应的内容:
{
"ok": true,# 所有的请求都有这个,true表示请求成功,false反之
"result": {
"id": ,# 整数,Bot的id
"is_bot": ,# 布尔值,True表明这是一个机器人,False反之
"first_name": "",# 字符串,Bot的称呼
"username": "",# 字符串,Bot的用户名
"can_join_groups": ,# 布尔值,True可以加入群聊,False反之
"can_read_all_group_messages": ,# 布尔值,True为可以阅读所有的群消息,False反之
"supports_inline_queries": # 是否支持Inline
}
}
所有的返回类型都是JSON,这大大方便了开发。
如果你有能力,可以使用自己熟悉的编程语言来从零开发自己的Bot并在GitHub上开源它
我们现在了解到控制Bot可以直接通过一条URL就可以完成。但是,简单的一两个控制可以很快就完成。如果有许多用户使用你的Bot,这种通过URL方式的控制就会变得非常的艰巨且不友好。同时,通过URL方式控制Bot做不到自动化,效率自然不高。
发展至今的Telegram Bot已经有许多的大佬开发了自己的Telegram Bot并在GitHub上开源了Bot的源代码。官方里收录的Bot Code使用的编程语言有Node.js,PHP,Python,Java,Ruby, Swift,Go,Rust, C++,Dart,C#,Scala,Perl,Lua,Haskell,OCaml
。
你可以在Examples的页面找到适合自己Bot代码进行学习并开发你的Telegram Bot。可能在GitHub的主页对代码的介绍比较少,但是下载了代码后直接阅读代码可以快速的学习如何通过这些代码控制Bot。阅读源代码是最快掌握如何使用和提高自己水平的方法。
END
关注我的微信公众号:上古的碑
努力分享技术!