Telegram 是一款非常良好的聊天软件,它非常重视用户隐私并对全部聊天信息进行加密并做永世存储,它还提供了种类丰富的群组和机器人,机器人是通過逞序运作的账号,可以回答我们发送的消息,还可以提供消息的定时推送功能,比方推送新消息、气候预告、提示事项等。

Telegram 官方为了让开发者可以或许参与到机器人的开发,还免费提供了功能齐备的 API ,我们可以用它创建自己的机器人,下面介绍下怎样创建和摆设机器人程序。

预备工作

Telegram 支持多种语言来编写机器人,相对来说使用 Python 的比较多,而且有比较成熟的第三方库 python-telegram-bot 供选择使用,以是提议花点时间学习下 Python,把握基本的开发方法和语法后就可以上手了,然后在开发過逞中再去逐步解决碰到的问题。

提议使用 PyCharm 作为 IDE 来编写程序,这样不但可以在编写代码时有语法高亮和主动提示,并且还可以更方便的添加第三方库和包管理器,默认的包管理器是 pip,我们可以换成 pipenv,它会主动帮你管理虚拟环境和依靠文件。

下面列出几条 Python 语法中比较特殊的地方

  • 代码缩进非常重要,同一代码块中的多行代码逼迫使用相同数目的空格,不然程序会编译不外
  • 定义变量用 x = 5 就可以了,不用声明是常量还是变量,而且 x 作为 int 种类时,它的长度不受限定
  • python 中的字符串可以直接当数组来用,例: z = ‘abcdefg’ z[0] = a, z[1:3] = bc
  • if 语句中可使用 in 或 not in 重要字,例:if ‘ab’ in ‘abcd’
  • [‘a’, ‘b’, ‘c’] 是 Array,(‘a’, ‘b’, ‘c’) 是 Set
  • 操作数组时索引可以是负数,表现从数组的背面开始按索引查找数据

创建机器人

在 Telegram 应用中通过与 @BotFather 攀谈来创建自己的机器人,详细方法跟着引导来操作就可以了,需要留意的是每个机器人都市对应一个 Token,机器人的全部信息交互都市用到它,以是要保管好不要走漏,制止其他人也能使用你的机器人办事情,创建机器人后可用链接 https://api.telegram.org/bot<token>/getMe 在browser里察看机器人信息,并可以或许看到以下反馈信息。

{ "ok": true, "result": { "id": 985878205, "is_bot": true, "first_name": "万达影戏 iOS 团队", "username": "WandaFilm_Bot" } }

通过与 BotFather 攀谈还能实现许多功能,详见以下图片内容

举个例子

下面这个简单例子可以使机器人可以或许相应 /start 和 /help 下令,还可以或许在收到聊天信息时进行回答,需要留意的是,假如你需要 VPN 才可以或许使用 Telegram,那么在机器人程序里你需要将 VPN 软件中的代理设置写在代码里。

from telegram.ext import Updater, CommandHandler, MessageHandler, Filters def start (update, context): update . message . reply_text( ' Hi! ' ) def help (update, context): update . message . reply_text( ' Help! ' ) def echo (update, context): update . message . reply_text(update . message . text) def error (update, context): logger . warning( ' Update " %s " caused error " %s " ' , update, context . error) if __name__ == ' __main__ ' : updater = Updater( ' <token> ' , use_context = True, request_kwargs = { ' proxy_url ' : ' socks5://127.0.0.1:1086/ ' }) dispatcher = updater . dispatcher dispatcher . add_handler(CommandHandler( " start " , start)) dispatcher . add_handler(CommandHandler( " help " , help)) dispatcher . add_handler(MessageHandler(Filters . text, echo)) dispatcher . add_error_handler(error) updater . start_polling() updater . idle()

想要理解机器人都可以或许做些什么事情,可以参考官方提供的 API ,还可以参考 python-telegram-bot 提供的 文档 和 Wiki ,最后就是发挥你的想象力了~

摆设

现在 Telegram 机器人支持两种获取用户消息的方法

下面介绍在使用 Webhook 方法时,怎样用最简单的方法将我们的机器人程序摆设到 Heroku 云平台所提供的回调地点上

完备的例子可以参考 https://github.com/lijingcheng/telegram-bot

telegram开发

微信订阅号:上古的碑
我会在微信订阅号上分享种种技能干货,欢迎来玩!


前言

​ 再阅读之前,要求把握肯定的编程底子,理解怎样进行HTTP的请求和度量有一颗热爱学习的心。

API
  1. 什么是API

    ​ API全称 Application Programming Interface,翻译过来就是 应用程序编程接口。简单点说,它就是一些事先定义好的工具。

  2. API的用途

    ​ 让开发者无须访问源码又可以访问这些预定好的工具,同时也能方便开发者进行开发。API的使用是否收费取决于放出这些API的组织。

  3. Telegram Bot API 近况

    ​ 完全免费且官方进行维护。经过几个版本的迭代更新,最新版本的Telegram 的 Bot API已经更新到了 4.6 版本,更新的日期为 January 23, 2020

    Telegram Bot API 传送门

控制Bot
一. 发送控制请求

​ 在创建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 的方法进行请求,还支持以下四种方法通报参数:

  • URL query string (参数直接写在请求的URL里)
  • application/x-www-form-urlencoded
  • application/json (除了上传文件)
  • multipart/form-data (用于上传文件)

​ 对了,全部的 METHOD_NAME 大小写都可以,同时要保证全部的请求都是使用 UTF-8

二. Bot的回应

​ 发送的全部控制请求,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

假如你有本领,可以使用自己认识的编程语言来从零开发自己的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

Bot Code Examples 传送门

​ 你可以在Examples的页面找到合适自己Bot代码进行学习并开发你的Telegram Bot。大概在GitHub的主页对代码的介绍比较少,但是下载了代码后直接阅读代码可以快速的学习怎样通过这些代码控制Bot。阅读源代码是最快把握怎样使用和进步自己程度的方法。

END

关注我的微信订阅号:上古的碑
积极分享技能!

Telegram是什么?打仗的人大概知道,没打仗的人肯定不知道(空话,呵呵),它是一个俄罗斯人开发的,为了防备被监视,就想开发一个完全加密的即时通讯软件,有着想法他就做了,并且还做的不错。由于这个软件可以规避别人的监视,尤其是某些当局的,以是在某些特需的人那边非常盛行,听说中东kb分子就是使用这个交流的。

但是其时这个毕竟是小众使用,根本无法推广出去,不外开发的人大概也没有想着推广,毕竟使用的人多了,名高引谤,大概会带来很多不便。不外事与愿违,由于前几年加密钱币非常火,环球各个当局对于这个新兴的事物无从动手,由于加密钱币本质属性就是抗当局!的(去中心化),以是最后索性大部分当局把!加密钱币给禁掉了,在这期间,由于Telegram与加密钱币具有相同的属性,都是去中心化和强加密的,以是一拍即合,Telegram借着加密钱币的东风,为大众所知晓。如今不但单是在加密钱币市场被广泛使用,在其他一些潜伏的场景也被使用,这里就不多说了。

Telegram已经发展了七八年了,到如今功能已经是很强盛了,它是去中心化的,你甚至可以搭建自己Telegram服务器,它是强加密的,别人不会监听到你消息,它另有强盛的机器人BOT机制,它可以定制开发,可以根据自己的意图完成一些重复的功能,这依托于它具有健全的API功能。

如今Telegram是被墙的,假如要使用,请自行架梯子。

Telegram官方Python版本,叫Telethon,API文档地点是: API官方地点 ,另有一个Telegram-API的项目,也是Python版本的,叫Pyrogram,其API文档地点为: Pyrogram文档地点 ,我使用了一段时间Pyrogram,大概是个人習慣的缘故,用不惯Pyrogram,全部又换回Telethon。

本文网址: http://www.1cm8858.com/d/20201115181047_2766_2374191841/home