Telegram机器人程序开发教程入门
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/getMe 在浏览器里查看机器人信息,并可以看到以下反应信息。 { "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('', 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 机器人支撑两种获取用户音讯的方法 Long Polling:每隔一段时间经过 getUpdates 获取音讯,缺陷是会有延迟 Webhook:需求设置一个 HTTPS 协议的回调 URL,当有人给机器人发音讯时,Telegram 会把音讯发送到这个 URL 上,缺陷是费事一些 下面介绍在运用 Webhook 方法时,怎么用最简单的方法将咱们的机器人程序布置到 Heroku 云平台所供给的回调地址上 将机器人程序代码放到 GitHub 库房中,留意不要暴露机器人的 Token,需求提交的库房中的文件如下 bot.py:编写机器人程序的代码文件 runtime.txt:描述所运用 python 语言版别的文件 requirements.txt:记载程序所运用第三方库的名称和版别号 Procfile:记载机器人程序代码地点的文件名 在 Heroku 上注册账号并创立项目,然后再进行以下设置 相关机器人程序地点的 GitHub 库房和代码分支,目的是当你提交代码到该分支后可以主动布置 将一些如机器人 Token 这类的私密信息以环境变量的形式配置在 Heroku 供给的对应页面中,然后在代码中读取并运用,在本地开发调试程序时也需求将此类信息经过 PyCharm 配置到环境变量中