【问题标题】:Is it possible to read bot Telegram messages是否可以阅读机器人电报消息
【发布时间】:2017-11-20 11:18:44
【问题描述】:

我已经成功地创建了一个机器人,并且能够使用https://core.telegram.org/bots/api#getupdates 方法(长轮询)从聊天中获取消息。

getUpdates 方法仅显示用户发布的消息(客户端)。当我使用https://core.telegram.org/bots/api#sendmessage 方法(服务器端)直接发布消息时,这些消息确实会出现在聊天中,但不会出现在 getUpdates 日志中。

本页https://github.com/LibreLabUCM/teleg-api-bot/wiki/Getting-started-with-the-Telegram-Bot-API#getupdates 声明它仅在“用户直接或在组中向您的机器人发送消息”时记录。和其他一些方式,但是sendMessage方式没有提到。

我已经阅读了一些关于 https://core.telegram.org/bots/api#setwebhook 方法(推送)的内容,但不确定这是否能解决我的问题。

这可能吗?如果是这样,请指出正确的方向。

干杯!

【问题讨论】:

  • 我不明白你的问题。您是否尝试阅读群组或频道中的所有消息?或者您是否尝试仅阅读特定机器人发布到频道的消息?你能澄清一下吗?
  • 阅读我的机器人通过 sendMessage 发布的消息是我所追求的。阅读所有消息会更好。我编写了一个脚本,通过 cURL 将消息发布到聊天中。我想从聊天中获取这些机器人消息。例如,门铃响起,将拍摄一张照片并将其发送到聊天室,并附上日期等信息丰富的短信。我想在这些消息出现在聊天中后阅读一次。
  • 使用电报 API 是一种选择(不是机器人 API)吗?使用电报 API,您可以轻松获取所有消息。
  • 谢谢,我会调查的!
  • 请注意电报 API 本身很复杂并且没有很好的文档记录。然而,有非常好的客户用不同的语言编写,您可以在很短的时间内完成它。例如对于 python,有 Telethon,对于 C# TLSharp。

标签: api logging bots telegram sendmessage


【解决方案1】:

getUpdates 方法仅显示来自用户的更新,而不是来自机器人本身的更新。这意味着当您使用 getUpdates 方法获取新消息时,Telegram API 将仅列出用户发送的消息,而不列出机器人通过任何方法发送的消息(例如 sendMessagesendPhoto ...) .

要获取旧消息,您可以将每条消息(甚至是机器人使用 sendMessage 方法发送的消息)的整个更新(或仅您需要的部分更新)存储在文件或数据库中,并在需要时存储一条旧消息,您可以简单地从数据库或文件中获取它。

【讨论】:

    【解决方案2】:

    根据Bot FAQ,机器人将无法看到来自其他机器人的消息,无论模式如何。

    【讨论】:

    • 我不确定这是否能解释问题。这就是我想要完成的;迈克尔(我)正在和@PhotoBot(不是真的)聊天。当 Michael 在聊天中添加一条消息时,它会出现在 getUpdates 中。当我使用 @PhotoBot 添加消息时,使用 sendMessage 方法,它没有。你认为这是你所指的问题吗?在您的链接中,他们谈到了其他机器人,在我的情况下,它是相同的机器人。感谢您的回复!
    猜你喜欢
    • 2017-07-29
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 2017-07-17
    • 2021-09-09
    • 1970-01-01
    相关资源
    最近更新 更多