【问题标题】:Telegram Bot API errors codes (integrating Groups and Channels)Telegram Bot API 错误代码(集成组和通道)
【发布时间】:2016-03-06 13:10:21
【问题描述】:

我正在为 Rubyists 开发我的开源项目 BOTServer http://telegram.org Bot Platform Webhooks Server。

在我创建的 Telegram Bot 上发送消息(sendMessage API 端点)时遇到奇怪的错误。向我创建的特定 Bot 发送消息时,出现以下错误:

  1. 错误代码 400 -> 错误请求:组已停用

    Telegram::Bot::Exceptions::ResponseError - Telegram API has returned the error. (ok: "false", error_code: "400", description: "[Error]: Bad Request: group is deactivated")

和/或

  1. 错误代码 403 -> 聊天机器人被踢出

    Telegram::Bot::Exceptions::ResponseError - Telegram API has returned the error. (ok: "false", error_code: "403", description: "[Error]: Bot was kicked from a chat")

这真的很奇怪。 似乎问题与特定机器人的“故事”有关(错误不是系统的,我对另一个机器人没有问题)。事实上,我做了这些步骤:

  1. 我创建了机器人(让我们称之为:MYbot)
  2. 我将机器人添加到电报组(例如 MYGroup)
  3. 我从组中删除了机器人
  4. 我从机器人发送消息以回复用户(然后出现错误)

问题 1 好的,我很确定 Telegram Serve 方面出了点问题,我可以删除并重建机器人......关于解决方案有更好的想法吗?

问题 2 有已发布的 Telegram Bot 错误列表吗?我没有在 Telegram Bot 文档/教程中找到。

我喜欢 Telegram 架构!但我觉得 Bots API 存在一些问题/错误,尤其是最近将 Bots 插入 Groups 和 Cahnnel 的可能性。有没有类似的经历?

【问题讨论】:

  • 不明白 4)。您确定在用户开始与您的机器人通信后向他发送消息吗?
  • 是的,我确定;我是机器人回复。顺便说一句,IMMO Bot 可以与用户发起不请自来的对话(拥有他的聊天 ID,这是永久的)
  • AFAIK,即使使用明确的 chat_id,机器人也无法开始对话。用户应该先写。我从来没有遇到过这样的问题,所以也许你向错误的 id 发送消息(例如分组)。我知道这不是一个很好的解决方案,但你可以检查两次 :) 我不认为这是电报服务器问题
  • 是与否:机器人可以向用户的聊天 ID 发送未经请求的消息(当然,当前订阅了机器人)。但就我而言,正如我所说,机器人回复用户队列(机器人接收更新和回复)
  • 无论您发送什么信息都会发生这种情况吗?我的意思是,如果您发送不同的消息,它会解决吗?您也可以发布您的请求示例吗?

标签: api chat bots telegram telegram-bot


【解决方案1】:

我回答自己已经找到了问题的可能原因。问题仅出现在我过去创建的单个特定 Bot(并且我从组中删除)。如问题所述:

一步一步的故事

  • 第 1 步: 创建后,我将该机器人添加到具有 2 个用户的 中:(我自己和第二个人)。

  • 第 2 步: 之后我从组中删除了该机器人。

  • 第 3 步: 我用那个机器人来测试我的BOTserver 向 webhook 更新发送 SendMessage od 回复。 现在我遇到了提到的 400/403 错误。

  • 第 4 步: 我删除那个 Bot,正在和 BotFather 聊天。

  • 第 5 步: 我再次使用**相同的名称*创建了同一个机器人

  • 第 6 步: 我再次测试,我提出了通常的问题:

    Telegram API has returned the error. (ok: "false", error_code: "401", description: "[Error]: Unauthorized"):

  • 第 7 步: 我创建了具有不同名称的新机器人 最后,没有更多错误了!

结论:

我公平原来的 Bot 名称仍然处于“错误”的 Telegram 服务器内部状态。我的假设是从群组中添加/删除 Bot 有一些问题/错误。

我的解决方案:

  • 删除机器人名称造成的问题,不再使用那个“名称”:(

  • 重新创建一个具有不同名称的机器人。

有类似的经历吗?

【讨论】:

  • 我在广播频道也有类似的经历。我很久以前创建了一个,并且有一段时间没有动过。最近,当人们尝试订阅频道时,错误增加了。然后我删除频道,再次创建它,一切正常。我什至注意到 UI 通道发生了变化!也许问题是“错误的”电报服务器内部状态和电报客户端应用程序版本的混合。
  • @jlvaquero 是的......我描述的场景发生在主要客户端应用程序更新之前(几个月前),所以我的假设是关于一些“旧”机器人名称的一些“错误”内部状态错误。
【解决方案2】:

我通过WebHook 请求收到此错误。 将机器人添加到组并通过BotFather 禁用机器人Add to group 功能后会出现此问题。

这个问题一直存在,直到我通过 /getUpdates 方法手动获取更新并将它们传递给 Telegram 服务器,然后 WebHook 工作正常。

希望这对你也有用。

【讨论】:

  • @Masoud thanxs,但并不完全清楚您的经验。你想一步一步解释吗?
【解决方案3】:

如果 bot API 返回响应错误,则返回 ok,如本例

try {
        return Telegram::sendMessage($message);
    } catch (TelegramResponseException $exception) {
        Log::info($exception->getMessage());
        return ['ok' => 'true'];
    }

【讨论】:

    猜你喜欢
    • 2016-07-01
    • 2021-06-08
    • 2016-03-16
    • 2016-04-24
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    相关资源
    最近更新 更多