Getchatmember Telegram api пример

Я делаю бота для телеграмм на PHP. Бот размещен на веб-сервере (goDaddy).

Бот работает, выполняем тестовую команду: TestCommand.php И работает. Просто верните сообщение.

Затем выполните другую команду: OpenlistCommand.php, и она работает, но у меня проблема с частью кода.

Функциональность команды: Создайте файл.txt для последующего размещения имен пользователей Instagram. Работает!

Команду следует использовать только в групповом чате, в частном порядке она возвращает сообщение «Я могу открыть список только в группе».Все это работает.

Проблема в том, что мне нужно, чтобы команда была активирована только администраторами группы.

Я использую getChatMember () для получения статуса (согласно API телеграммы должны быть данные, которые мне нужны), но я думаю, что делаю это неправильно, поскольку переменная, в которой я храню данные, равна нулю. Не могли бы вы дать мне какое-нибудь руководство? Спасибо

namespace LongmanTelegramBotCommandsUserCommands; use LongmanTelegramBotCommandsUserCommand; use LongmanTelegramBotRequest; class OpenlistCommand extends UserCommand < protected $name = ‘OpenList’; // Nombre de comando protected $description = ‘Habilita la inscripcion de los usuarios a la lista’; // Descripcion del comando protected $usage = ‘/openlist’; // Uso del comando protected $version = ‘1.0.0’; // Version del comando //Funcion que ejecuta el Comando public function execute () < $message = $this->getMessage(); // Captura el objeto mensaje $chatMember = $this->getChatMember(); // Deberia capturar el ChatMember $chat_id = $message->getChat()->getId(); // Captura el Id del chat $chatType = $message->getChat()->getType(); // tipo de chat private o group $status = $chatMember->getStatus(); // Deberia guardar el Status del usuario $data = [ // Setea los nuevos datos del mensaje ‘chat_id’ => $chat_id, // Setea la id del chat para enviar el mensaje a: ‘text’ => », // Setea el mensaje a enviar ‘chat_type’ => $chatType, //private or group ]; //Esta en chat privado? if ($chatType==’private’) < $data [‘text’] = ‘Estamos en privado no puedo abrir lista’; return Request::sendMessage($data); >else < if ($status ==’administrator’) < $data [‘text’] = ‘Lista abierta’; $archivo = fopen(«Lista.txt»,»a»); return Request::sendMessage($data); >else < $data [‘text’] = ‘Tienes que ser administrador para abrir la lista’; return Request::sendMessage($data); >> > > //Fin clase

Еще по теме:  Как в Телеграмм упорядочить сохраненную информацию

С этим кодом бот работает нормально, но он не определяет, что я администратор группы. Он возвращает сообщение: «вы должны быть администратором группы», я имею в виду, что условие if ложно, и это потому, что $ status имеет значение null. (Я уже проводил тесты, возвращающие данные в тексте, и он ничего не возвращает)

САМЫЙ ПОДРОБНЫЙ ГАЙД ПО TELEGRAM BOT API | Bot по учёту доходов/расходов | Создание бота

Некоторая помощь? Пожалуйста, я занимаюсь этим две недели и нигде не могу найти никакой информации.

Источник: stackru.com

Как Telegram Bot принимает нужные сообщения? | Основы библиотеки Telegraf #1

Getchatmember telegram api пример

Использую код с репозитория Telegram.Bot.

Для хранения списка участников, после получения сообщения от пользователя, сохраняю Message.Chat.Id в mdb.

Вопрос: как узнать, что конкретный ChatID еще «является участником» чата?

В Message есть свойства .NewChatMember и .LeftChatMember (https://core.telegram.org/bots/api#message) только всегда в результате события OnMessage получаю значения null.

Также есть метод GetChatMemberAsync базированый на (https://core.telegram.org/bots/api#getchatmember) которому в параметры передаются ChatID и userID, но не получается ничего.

private Telegram.Bot.TelegramBotClient BOT; BOT = new Telegram.Bot.TelegramBotClient(«»); BOT.OnUpdate += BotUpdatesReceived; private async void BotOnMessageReceived(object sender, MessageEventArgs messageEventArgs)
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Последний раз редактировалось Aleksandr H.; 18.02.2018 в 15:44 .

Источник: www.programmersforum.ru

Ребята всем привет, вопрос про метод getChatMember У меня накапливается база,

соответственно надо как то отсеивать тех кто вышел с определённого чата, я делаю это с помощью getChatMember Так вот, я так понимаю если пользователь ниразу не заходил в чат или вышел из него то бот вернёт 400 Bad Request: user not found Дело в том что на некоторых пользователей которые присутствуют в чате — бот возвращает 400 Bad Request: user not found, хотя пользователь находится в чате, который ищется и через поиск и по инфе отображается общая группа Бот не админ в чате На примере других пользователях бот-неадмин норм возвращает запрос — на тех которые присутствуют в чате он не возвращает ошибки и в консоле показывает что всё хорошо, на других пользователях показывается что пользователь вышел Думал что если пользователь добавил чат в архив — то в таком случае возвращало 400 Bad Request: user not found Попробовал на примере — добавил чат в архив, протестировал командой — возвратило то что пользователь находится в чате Собственно это ошибка на уровне телеграм?

Еще по теме:  Можно ли в Телеграмме создать еще одно избранное

03:53 06.08.2021

12 ответов

Поли Робокар + * Автор вопроса

Дополню: пользователь вышел с чата, проверяю данного пользователя — является ли он участником группы — возвращается успех Странно как то работает этот метод. Код собственно: bot.getChatMember(ИДчата, ИДюзера).then(function(value) < console.log(«успешно») >, function(reason) < console.log(«ошибка: » + JSON.stringify(reason)); >);

Источник: telq.org

Рейтинг
( Пока оценок нет )
Загрузка ...