python版电报API接入从零到一(有彩蛋)

news/2024/7/24 12:38:37 标签: python

在这里插入图片描述

文章链接

编号分类文章及链接介绍作者来源分类撰写日期收录日期
F1框架python版telegram接入开源botpython-telegram-botGithub2023-04-24

申明:本文仅作试验研究用,不对参考本文操作产生的各种结果承担任何责任。

Q&A

使用Telegram的API需要交费吗?

使用Telegram的API令牌不需要付费,它是免费提供的。任何人都可以通过创建一个Telegram账户和使用BotFather创建一个Bot来获取一个API令牌,然后使用该令牌与Telegram服务器进行通信并创建自己的应用程序和机器人。然而,如果您的应用程序或机器人需要处理大量的消息或需要使用Telegram的高级功能,例如群组管理或频道管理,您可能需要购买Telegram的专业版服务,以获得更多的资源和功能支持。但是,大多数开发者使用Telegram的免费API令牌就可以完成大部分的开发任务。

Telegram的开发步骤

Telegram提供了API,使开发者能够使用各种编程语言与Telegram服务器进行通信并创建自己的应用程序和机器人。以下是Telegram开发的一般步骤:

  1. 创建一个Telegram账户并安装Telegram客户端。

  2. 创建一个Bot:使用Telegram的官方BotFather创建一个Bot,BotFather会分配一个API令牌,开发者可以使用该令牌与Bot进行通信。

  3. 选择开发语言和库:开发者可以选择使用任何编程语言和相关的库来与Telegram API进行交互,例如Python的python-telegram-bot库或Node.js的Telegraf库。

  4. 使用API与Bot进行交互:开发者可以使用API发送消息、接收消息、处理命令、处理回调等。例如,使用sendMessage方法向用户发送消息,或使用answerCallbackQuery方法回答回调查询。

  5. 部署应用程序或机器人:开发者可以选择将应用程序或机器人部署到自己的服务器上,或使用云托管服务,例如Heroku或AWS Lambda。

总之,Telegram的开发方式是通过API与Telegram服务器进行通信,并使用所选的编程语言和库来创建自己的应用程序和机器人。

上述回答来自ChatGPT

开发过程

1. 创建一个Telegram账户并安装Telegram客户端。

以下是创建一个Telegram账户并安装Telegram客户端的步骤:

  1. 打开Telegram官网(https://telegram.org/)并下载适用于您设备的Telegram客户端。Telegram客户端支持Windows、macOS、Linux、Android、iOS等多个操作系统,您可以根据您的设备类型选择适当的版本。

  2. 安装Telegram客户端并打开它。

  3. 在Telegram客户端中,您需要提供您的手机号码。Telegram会向您的手机号码发送一条确认短信,以验证您的身份。

  4. 输入您的姓名和个人资料信息。这些信息将用于您的Telegram账户。

  5. 创建您的用户名。用户名是唯一的,如果您的用户名已被使用,您将需要选择一个新的用户名。

  6. 现在您可以开始使用Telegram了。您可以搜索其他用户并开始与他们聊天,或加入与特定主题相关的频道和群组。

总之,创建一个Telegram账户并安装Telegram客户端非常简单,只需按照上述步骤操作即可。

2. 创建一个Bot

要创建一个Telegram Bot,请按照以下步骤操作:

  1. 在Telegram中搜索BotFather。BotFather是Telegram提供的一个官方Bot,您可以使用它来创建新的Bot。

  2. 启动BotFather,发送/start命令,BotFather会回复一条消息,列出一些可用的命令。

  3. 使用/newbot命令创建一个新的Bot。BotFather会要求您输入Bot名称和Bot用户名。

  4. 输入Bot名称和Bot用户名。Bot名称是Bot的显示名称,Bot用户名是唯一的,以“bot”结尾。

  5. BotFather会分配一个API令牌,您需要妥善保管这个API令牌,因为它将用于与Bot进行通信。

  6. 现在您已经成功创建了一个Telegram Bot。您可以使用API令牌与Bot进行通信,并使用各种API方法来发送和接收消息、处理命令和回调等。

在这里插入图片描述

3. 选择开发语言和库

Telegram 支持多种编程语言进行二次开发,包括 Python、JavaScript、Java、Go、Ruby,还支持其他编程语言进行二次开发,例如:C++, Swift, PHP 等。
如果是Python,当然选择python-telegram-bot库。

4. 使用API与Bot进行交互

下面是python-telegram-bot 2023年正式上线的V20.x版的最简单例子。用户在频道中输入/start命令,会得到“I’m a bot, please talk to me!”的回复。注意需要修改’TOKEN’为第二步申请到的Token,是一串数字+一些列字符组成的字符串。具体参考Extensions Your first Bot。

python">import logging
from telegram import Update
from telegram.ext import ApplicationBuilder, ContextTypes, CommandHandler

# 设置日志输出
logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    level=logging.INFO
)

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")

if __name__ == '__main__':
    application = ApplicationBuilder().token('TOKEN').build()
    
    start_handler = CommandHandler('start', start)
    application.add_handler(start_handler)
    # 启动应答机器人
    application.run_polling()

5. 部署应用程序或机器人

通过执行类似如下命令,即可快速启动你的第一个telegram机器人。

python mytelegrambot.py

如果需要打包后部署,建议使用Pyinstaller等打包工具。

彩蛋

  1. 如何向电报用户推送消息,参考From Python to Telegram: Build your own Notification System
  2. 如何向电报用户推送图片,参考How to send photo on telegram bot

注意事项:

国内用户注意不能直接访问电报API接口,需要搭梯子。


http://www.niftyadmin.cn/n/266713.html

相关文章

[Eigen中文文档] 包含Eigen对象的结构体

文档总目录 本文目录 摘要需要修改什么样的代码?这样的代码应该如何修改?为什么需要这样修改?是否应该把 Eigen 类型的所有成员放在类的开头?动态大小的矩阵和向量呢?这是 Eigen 中的Bug吗?怎样有条件地执…

04-26 每日一题 1031. 两个非重叠子数组的最大和 学习反思

1031. 两个非重叠子数组的最大和 类似问题转换 考虑一个问题,如何求得数组中两个数的最大和。 可以固定一个数,然后向右遍历如下,可以求得目标数组中两个数的最大和为 15 把思路实现为代码 实现过程,如上图所示过程&#xff0…

【JavaEE】SpringBoot的日志

目录 日志作用 SpringBoot日志框架 日志打印 日志级别 类型 作用 修改级别 日志永久化 配置日志文件目录 配置日志文件名 简化日志打印和永久化——lombok 日志作用 问题定位:可以帮助开发人员快速找到问题出现的位置系统监控:可以把系统的运…

根据虚拟地址,如何求出页号和偏移量?

方法掌握 虚拟地址划分成虚拟页号和虚拟页偏移量。 物理地址同样可划分为物理页号和物理页偏移量 如何划分,关键点在于页面的大小。 假设给你一个十进制表示的地址20000,一个页面的大小为4KB,那么如何找出地址20000的具体位置呢&#xff1f…

Java开发手册-1

Java开发手册-1 编程规约命名风格常量定义 编程规约 命名风格 【强制】所有编程相关的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例:_name/_name/$Object/name_/name$/Object$ 【强制】所有编程相关的命名严禁使用拼音与英文…

linux配置nginx.service服务并开机启动

1、先安装nginx 2、进入/usr/lib/systemd/system目录下,编写nginx.service文件: [Unit] //服务说明 Descriptionnginx - high performance web server //服务描述 Afternetwork.target remot…

Vite+Vue下的多页面入口配置

我发现多页面入口配置在网上的资料比较乱,今天正好结合我们的开源API分析工具项目(APIcat)更新情况总结一下。 更新vite.config.js 主要配置的更新是在vite.config.js里面要增加build里的rollupOptions,因为vite底层使用了rollu…

鹏程·盘古

鹏程盘古模型基于 1.1 TB 高质量中文训练数据,采用全场景人工智能计算框架 MindSpore 自动并行技术实现了五维并行训练策略,从而可将训练任务高效扩展到 4 096 个处理器上。 对比实验表明,在少样本或零样本情况下,鹏程盘古模型在…