Как на php вывести рандомного пользователя с телеграмм группы где установлен бот?

Рейтинг: -1Ответов: 1Опубликовано: 29.07.2023

Как на php вывести рандомного пользователя с телеграмм группы где установлен бот?

Хочу сделать по команде в группу /rand будет выводить имя рандомного пользователя с группы

Как сделать чтобы телеграмм бот отправлял имя случайного человека из группы?

Ответы

▲ 0

Тебе необходимо иметь список участников беседы. Но к сожалению, в Telegram API этот функционал отсутствует. Так-что есть два решения твоей задачи:

  1. Использоваться Telegram API (Не BotAPI). Telegram API - это клиентское API. Т.е. запрос исходит от пользователя, а не бота. Необходимо под своим клиентом создать приложение, получить специальные ключи и от его имени делать запросы. Таким образом ты можешь спарсить всех участников, сохранив их к себе в БД. А потом уже твой бот может по команде /rand брать случайного пользователя из БД и выводить его.

  2. Твой бот может отслеживать любое сообщение/действие, совершенное в беседе. Тебе нужно отслеживать объект message, а именно действия:

  • new_chat_participant: в беседу добавили нового участника. В этом случае сохраняешь его ID к себе в БД.

  • left_chat_participant: участника удалили с беседы. В этом случае удаляешь его запись из БД.

Таким образом ты можешь собирать базу из участников беседы, что поможет тебе выбирать рандомного. Минус этого способа очевидный, в БД не попадут участники, которые попали в беседу до добавления бота. Так-что этот способ будет корректно работать, если бота добавили в беседу самым первым.

Но этот способ можно компенсировать, отслеживая не только появление новых участников, но и так-же все сообщения. Как только какой-то пользователь написал что-либо в беседу, ты проверяешь, есть-ли он уже в БД и если нет - добавляешь. Таким образом, после добавления бота в беседу, можно подождать пока все пользователи напишут хотя-бы одно сообщение.