Исключение пользователей Telegram групп, при увольнении в 1с

1. klubnichkas 10.08.23 16:12 Сейчас в теме
Доброго времени суток!)
Есть задача, при увольнении сотрудника в 1с, исключать его из корпаративных чатов и групп в Телеграм. (сопоставленные id сотрудников есть)
Погуглив, нашел что сделать это, можно передав команду "banChatMember" боту, который должен обладать админскими правами в группах, из которых нужно исключать.
Пытаюсь воспроизвести данный способ в тестовом варианте - ничего не получается((

Код, которым отправляю команду:

Заголовки = Новый Соответствие;
Заголовки.Вставить("chat_id","-************");
Заголовки.Вставить("user_id","*********");


Приемник = "bot63247*****:*****CAp8SIyAmzsbmqa5Ct************/banChatMember";
HTTPСоединение = Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
HTTPЗапрос = Новый HTTPЗапрос(Приемник,Заголовки);
Ответ = HTTPСоединение.Получить(HTTPЗапрос);

Пробовал отправлять разными способами, ответ всегда один:
{"ok":false,"error_code":400,"description":"Bad Request: invalid user_id specified"}

Подскажите пожалуйста, что я делаю не так? и можно ли с помощью данной команды решить поставленную задачу? заранее благодарю!
Найденные решения
12. laperuz 46 11.08.23 12:45 Сейчас в теме
(11)Попробуйте тогда передавать в параметрах get запроса, вот так:

идчата =  "************";
идпользователя = "*************";


Приемник = СтрШаблон("bot***************************************/banChatMember?chat_id=%1&user_id=%2", идчата, идпользователя);
HTTPСоединение = Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
HTTPЗапрос = Новый HTTPЗапрос(Приемник);
Ответ = HTTPСоединение.Получить(HTTPЗапрос);
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. laperuz 46 10.08.23 19:07 Сейчас в теме
(1)user_id числом должен быть, а у вас строка
7. klubnichkas 11.08.23 09:39 Сейчас в теме
(5) Пробовал и числом, то же самое( пробовал по всякому формировать команду, очень хочется верить что я какую то ерунду упускаю)) но какую именно, не пойму(
10. laperuz 46 11.08.23 10:18 Сейчас в теме
(7)Попробовал. Нужно параметры не в заголовке передавать, а в теле запроса, тогда работает.

HTTPЗапрос.УстановитьТелоИзСтроки(СтрШаблон("{""chat_id"" : %1, ""user_id"": %2}", идчата, идпользователя));
11. klubnichkas 11.08.23 12:13 Сейчас в теме
(10)
	
идчата         =  "-************";
идпользователя =  "***********";
			
Приемник = "bot***********************************/banChatMember";
HTTPСоединение  =  Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
HTTPЗапрос = Новый HTTPЗапрос(Приемник); 
HTTPЗапрос.УстановитьТелоИзСтроки(СтрШаблон("{""chat_id"" : %1, ""user_id"": %2}", идчата, идпользователя));
Ответ = HTTPСоединение.Получить(HTTPЗапрос);   
Показать


Ответ ровно такой же( {"ok":false,"error_code":400,"description":"Bad Request: invalid user_id specified"}
id точно правильные
Что то я упускаю(
12. laperuz 46 11.08.23 12:45 Сейчас в теме
(11)Попробуйте тогда передавать в параметрах get запроса, вот так:

идчата =  "************";
идпользователя = "*************";


Приемник = СтрШаблон("bot***************************************/banChatMember?chat_id=%1&user_id=%2", идчата, идпользователя);
HTTPСоединение = Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
HTTPЗапрос = Новый HTTPЗапрос(Приемник);
Ответ = HTTPСоединение.Получить(HTTPЗапрос);
Показать
13. klubnichkas 11.08.23 14:41 Сейчас в теме
(12) С таким способом ошибка звучит как:
{"ok":false,"error_code":400,"description":"Bad Request: PARTICIPANT_ID_INVALID"}

В сети пишут что так может быть изза того, что бот "забыл пользователя", как я бы не старался, вспоминать не хочет))
Писал боту с удаляемого акка, пересылал сообщения из чата боту итд... Снова тупик(
14. klubnichkas 15.08.23 09:55 Сейчас в теме
(12) Заработало!) не понял точно сам в чем была магия, несколько раз переназначил боту админские права и получилось (хотя делал это и ранее, магия))) метод banChatMember работает именно так как я ожидал, метод unbanChatMember позволяет разблокировать пользователя, и заново добавить его в группу. Всем спасибо!)
2. starik-2005 3052 10.08.23 18:13 Сейчас в теме
В АПИ написано, что таким образом юзер банится от 30 сек до 366 дней. Потом разбанится автоматом. У вас бот постоянно будет пербанивать таких юзеров?
4. laperuz 46 10.08.23 19:05 Сейчас в теме
(2)там написано, что если передать 0, то забанится навсегда
И если меньше 30 секунд или больше 366 дней, тоже
https://core.telegram.org/tdlib/docs/classtd_1_1td__api_1_1ban_chat_member.html
3. starik-2005 3052 10.08.23 18:28 Сейчас в теме
В интернетах есть какой-то либ, в котором есть кик, но там , как я понял, сделано это правами пользователя на группу. Типа ставится право с чтением мессагов, равным "ложь".
9. klubnichkas 11.08.23 09:43 Сейчас в теме
(3) Можете пожалуйста подсказать, где можно глянуть? я пытаюсь реализовать через эту команду, поскольку никакого способа лучше просто не нашел((
6. user620512 11.08.23 07:34 Сейчас в теме
Есть версия что бот "забывает" пользователей, но теме 5 лет и речь про getChatMember

https://stackoverflow.com/questions/49934454/telegram-bot-api-getchatmember-throws-user-id-invalid-for-valid-user
8. klubnichkas 11.08.23 09:41 Сейчас в теме
(6) Да, видел эту тему. Пытался переподписывать пользователей на бота, ничего не помогает, ответ всегда один(((
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот