Telegram Bot API错误代码(集成组和通道)

时间:2015-12-02 10:24:35

标签: api chat bots telegram telegram-bot

我正在为Rubyists开发我的开源项目BOTServerhttp://telegram.org Bot平台Webhooks服务器。

在我创建的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")

  2. 和/或

    1. 错误代码403 - > Bot在聊天中被踢了

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

    2. 这真的很奇怪。 似乎问题与特定Bot的“故事”有关(错误不是系统性的,我没有与另一个机器人有问题)。事实上,我完成了以下步骤:

      1. 我创建机器人(让它吧:MYbot)
      2. 我将机器人添加到Telegram Group(例如MYGroup)
      3. 我从集团中删除了机器人
      4. 我从机器人发送消息以回复用户(然后我收到错误)
      5. 问题1 好吧我很确定发生了错误的电报服务方面,我可以删除并重建机器人...对解决方案有任何更好的想法吗?

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

        我喜欢电报架构!但我觉得Bots API存在一些问题/错误,特别是最近在群组和Cahnnel中插入Bots的可能性。有类似的经历吗?

3 个答案:

答案 0 :(得分:1)

我回答自己找到问题的可能原因。问题出现在我过去创建的一个特定的Bot(我从一个组中删除)。具体问题如下:

一步一步的故事

  • 第1步: 创建之后,我在2个用户的上添加了该机器人:(我自己和第二个人)。

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

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

  • 第4步: 我 DELETED 那个Bot,和BotFather聊天。

  • 第5步: 我再次使用** SAME identichal name *

  • 创建了相同的Bot
  • 第6步: 我再次测试,我提出了一个常见的问题:

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

  • 第7步: 我用不同的名字创建了新的机器人 最后,不再有错误!

结论:

我公平原来的Bot名字仍然存在于"错误"电报服务器内部状态。我的想法是,从组中添加/删除Bots存在一些问题/错误。

我的解决方案:

  • 删除机器人名称创建的问题,不再使用它" name" :(

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

有类似的经历吗?

答案 1 :(得分:0)

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

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

希望这也适合你。

答案 2 :(得分:0)

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

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