Обработчик запросов от N ботов телеграмма?

Добрый день! Допустим у меня в базе есть N записей с ключами к телеграм ботам. Само собой вебхуки поставленны на разные URL, но обработчик у них один.

У меня есть метод, в котором создаю соединение, а потом прохожусь по ним в цикле, но из какого бы бота я не посылал сообщение, отвечает только первый. Подскажите, что именно, я делаю не так?

public function hendle()
    {

        $bots = [];

        $bots[] = new Api('здесь первый ключ');
        $bots[] = new Api('здесь второй ключ');

        $instance = [];

        foreach ($bots as $key => $bot)
        {
            if ($bot->getWebhookUpdates())
            {
                $request = $bot->getWebhookUpdates();

                if(isset($request['message']))
                {
                    $instance['message'] = $request['message'];
                    $instance['bot'] = $bot;
                    $instance['me'] = $request->getMe();
                }
            }
        }

        $chat_id = $instance['message']['chat']['id'];

        return $instance['bot']->sendMessage([
            'chat_id' => $chat_id,
            'text' => "Hello World",
        ]);
    }


Где я допускаю ошибку и как слушать любое кол-во ботов? Более того, если у меня будет много пользователей, то для каждого из них будет происходить запрос к базе, где храняться api ключи. Что будет выгоднее по нагрузке и скорости работы? Хранить данные с ключами в файле конфигурации или БД?
Спасибо!
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
thewind
@thewind
php программист, front / backend developer
В вашем вопрос и примере - коллапс. Вы пишете , что вебхуки установлены. Но в таком случае вам не надо запрашивать никакие апдейты - они сами прилетают на указанный в вебхуке урл. И там же вы получаете айди бота и все нужные данные по отправителю / получателю
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы