基于 Telegram Bot API 实现,采用 Bot Token 嵌入 URL 路径的鉴权方式。
包信息
- NuGet 包:
Bitzsoft.Integrations.InstantMessaging.Telegram - 接口:
IInstantMessagingService - 鉴权:Bot Token in URL path(
/bot{token}/{method}) - Provider ID:
telegram
配置
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
BotToken | string | 是 | — | Bot Token(形如 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11) |
BaseUrl | string | 否 | https://api.telegram.org | Telegram Bot API 基地址 |
HttpClientName | string | 否 | InstantMessagingTelegram | 业务 HttpClient 命名 |
{ "InstantMessaging": { "Telegram": { "BotToken": "123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11" } }}注册
// 方式一:IConfiguration(默认读取 "InstantMessaging:Telegram" 配置节)services.AddTelegramInstantMessaging(configuration);
// 方式二:委托配置services.AddTelegramInstantMessaging(options =>{ options.BotToken = "123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11";});使用示例
// 发送文本消息var result = await im.SendTextMessageAsync(new SendTextMessageRequest{ Channel = "@channelname", Text = "Notification from Bitzsoft"});
// 发送卡片消息var cardResult = await im.SendCardMessageAsync(new SendCardMessageRequest{ Channel = "@channelname", // 卡片内容按 Telegram InlineKeyboard 格式构造});
// 删除消息await im.DeleteMessageAsync("message-id");鉴权机制
- Bot Token 嵌入 URL 路径:
https://api.telegram.org/bot{token}/{method}。 - 无需构造时注入鉴权头,Token 直接出现在请求 URL 中。
- Token 通过 @BotFather 创建机器人后获取。
已知限制
Telegram 无传统频道创建/成员邀请 API(频道通过 Bot 在 Telegram 客户端或独立 API 管理)。CreateChannelAsync/InviteMemberAsync 的语义按 Telegram 实际能力实现或受限。