【问题标题】:Command sent on Bot stop/locking机器人停止/锁定时发送的命令
【发布时间】:2021-08-14 01:07:41
【问题描述】:

我想知道当机器人停止/锁定时是否从电报发送命令以及是什么。我已经阅读了电报机器人文档并搜索了这个问题,但我没有找到解决方案。

我在哪里可以找到?

【问题讨论】:

  • 老实说,我无法完全理解您的问题。你能改写一下吗?
  • 我想知道当用户停止/阻止机器人时是否有从电报发送到机器人的命令,例如启动机器人时的 /start。因为我有一个包含所有 chat_ID 的列表,如果我的机器人停止,我想从我的列表中删除这个 chat_ID。不知道现在好不好

标签: php telegram telegram-bot


【解决方案1】:

每次您向 Telegram 服务器发送请求时,您都会收到响应。


响应包含一个 JSON 对象,该对象始终具有一个布尔字段 ok,并且可能具有一个可选的字符串字段 description,其中包含人类可读的结果描述。如果ok 等于true,则请求成功,查询结果可以在result 字段中找到。如果请求不成功,ok 等于 false,错误在description 中解释。还会返回一个整数“error_code”字段,但其内容将来可能会发生变化。

来自official documentation


例如,当您向被阻止的机器人发出请求时,您可能会收到类似的响应。

{
  "ok":false,
  "error_code":403,
  "description":"[Error]: Forbidden: can't write to private chat with deleted user"
}

所以当ok 字段为假时,你就知道出了点问题。

【讨论】:

  • 问题不是关于一般 Telegram 对请求的响应,而是关于当用户停止机器人时机器人收到的消息。
【解决方案2】:

您可以检查my_chat_member 更新。当用户从他的聊天中阻止您的机器人时(可能是对话或只是私人聊天),您将收到带有这些字段的消息。

{
 chat: {
   id: 1,
   username: "...",
   type: "private",
 },
 from: {...},
 old_chat_member: {status: "member"}, // is your bot status
 new_chat_member: {status: "kicked"}, // is you new bot status
}

【讨论】:

    猜你喜欢
    • 2021-09-04
    • 2021-04-14
    • 2020-10-30
    • 2023-01-13
    • 2021-02-22
    • 1970-01-01
    • 2010-09-29
    • 2021-10-05
    • 1970-01-01
    相关资源
    最近更新 更多