纸飞机电报 API 接入后,如何统计消息的发送成功率?​

上官春柏上官春柏09月13日1918

接入纸飞机电报API后,怎么知道发送的消息有多少人收到了?有没有办法统计发送成功比例?

4 个回答

受彦君
受彦君回答于 09 月 13 日
最佳答案

接入了 Telegram Bot API 之后,如果想要统计消息发送成功率,核心思路是监听 Bot 的「消息送达状态」。

1. 使用 getUpdates 或 Webhook 接收事件的时候,会收到 message_id 和 update_id,这些是判断消息是否成功投递的关键标识。

2. 每次调用 sendMessage 成功后,会返回一个 message_id,你可以将这条记录下来(比如存数据库)。

3. 用户真正收到消息,系统不会主动通知你,但是可以通过用户后续的行为来间接判断是否投递成功,比如是否点击按钮、是否回复消息等。

4. 如果想更准确的知道是否投递成功,可以配合 sendChatAction + 回调确认机制,不过这种方式也不完全靠谱。

5. 最靠谱的方式是设计一个「确认反馈」流程,比如让对方点击「已收到」按钮,这样你就能明确知道他看到消息了。

在实际场景中,大多数营销平台会选择结合用户行为来估算送达率,而不是依赖系统自动通知。这种方式虽然不是 100% 准确,但在大多数情况下已经够用了。

磨幻枫
磨幻枫回答于 09 月 17 日

Telegram 官方没有提供消息送达率的统计功能,不过你可以通过以下方式来判断消息是否被对方收到:

1. 查看 API 返回状态

发送消息后,Telegram Bot API 会返回一个响应,例如 {"ok":true,"result":{"message_id":123...}},这说明消息已成功发送至服务器。

2. 监听消息已读回调(Read receipts)

如果你的账号或群组开启了“已读回执”,你可以通过 update 类型为 "message_read" 的事件来判断对方是否查看了消息。

3. 使用第三方工具辅助统计

一些 Telegram 营销平台会集成这些回调机制,用于追踪消息的送达情况。你可以考虑使用此类工具。

4. 自行搭建监控系统

如果你的技术能力较强,可以自己搭建数据库来记录每条消息的发送状态,并在收到已读回执后更新状态。

需要提醒的是,即使消息发送成功,也无法确保对方一定看到。对方可能关闭了通知、处于离线状态,或屏蔽了你的消息。

在实际应用中,建议结合多个渠道的数据来评估消息的送达效果。

庞高逸
庞高逸回答于 09 月 18 日

Telegram API 本身不支持消息到达率统计,但是通过回调和状态码可以判断发送成功与否。

1. 发送消息时,API 返回 message_id 作为第一步确认。

2. 接着监听 update 事件,其中 delivery_confirmation 字段表示消息已经被接收方客户端下载。

3. 可以在后台记录每一次发送和确认的时间,进行比对计算成功率。

4. 用户是否真正打开,目前 Telegram 官方未开放接口,只能通过埋点或引导用户回复来间接判断。

如果是做营销平台,建议结合自身系统做一套监控机制,更加灵活。希望对你有帮助。

昌盼夏
昌盼夏回答于 09 月 19 日

接入 Telegram Bot API 之后,消息发送的成功率可以这样来统计:

1. 调用 `sendMessage` 接口,根据返回结果是否带错误码来判断,返回 `{"ok": true}` 即为发送成功,否则失败。

2. 通过 Bot 的更新通知功能,监听 `message` 事件,当用户收到消息并进行回复时,可以辅助判断消息是否送达。

3. 如果使用的是第三方营销平台或封装好的 SDK,通常都会有「发送状态」接口或后台统计数据,可以直接查看。

4. 对于群组或频道消息,可以结合 `getChatMembersCount` 与实际互动数进行对比,粗略判断接收率。

需要注意的是,Telegram 不能保证消息 100% 送达(如频繁发送或被屏蔽等),因此成功率仅供参考。做好日志记录才是最重要的。

您的答案