Я использую telegram_bot и пытаюсь получить идентификатор groupChat для отправки уведомлений в групповой чат, но не знаю, какие методы я должен использовать для этого.
Для получения идентификатора чата я использую message.chat.id, когда бот участвует в чате, но я не могу найти его, чтобы получить идентификатор группового чата.
telegram
telegram-bot
Роман Подпрятов
источник
источник
Ответы:
Чтобы получить идентификатор группового чата, сделайте следующее:
Добавьте Telegram BOT в группу.
Получить список обновлений для вашего BOT:
Пример:
Ищите объект "чат":
Это образец ответа при добавлении вашего BOT в группу.
источник
getUpdates
возвращаются запрос ,{"ok":true,"result":[]}
даже если я пытаюсь отправить кучу сообщений в группе и упоминание бот через@
и некоторые случайные «команды»/my_id
,/start
,/help
. Есть идеи что делать? - ОБНОВЛЕНИЕ: ОК, удаление бота из группы и добавление бота обратно исправили эту проблему (также он печатал идентификатор чата в группе) - похоже, что бот не может быть добавлен во время создания группы.Вот последовательность, которая работала для меня после нескольких часов борьбы:
Предположим, имя бота my_bot .
1- Добавить бота в группу.
Перейдите в группу, нажмите на имя группы, нажмите «Добавить участников», в окне поиска найдите своего бота, например: @my_bot, выберите своего бота и нажмите «Добавить».
2- Отправьте фиктивное сообщение боту.
Вы можете использовать этот пример:
/my_id @my_bot
(Я пробовал несколько сообщений, не все сообщения работают. Пример выше работает нормально. Возможно, сообщение должно начинаться с /)
3- Перейдите на следующий URL:
https://api.telegram.org/botXXX:YYYY/getUpdates
замените XXX: YYYY на свой токен бота.
4- Ищите "chat": {"id": - zzzzzzzzzz,
-zzzzzzzzzz - это идентификатор вашего чата (с отрицательным знаком).
5- Тестирование: вы можете проверить отправку сообщения группе с помощью локона:
Если вы пропустите шаг 2, обновлений для группы, которую вы ищете, не будет. Также, если есть несколько групп, вы можете найти имя группы в ответе («title»: « group_name »).
Надеюсь это поможет.
источник
/
like,/test something
делает счастливыми getUpdates.По состоянию на март 2020 года просто:
После присоединения он выведет JSON-файл, в котором ваш идентификатор чата будет расположен по адресу message.chat.id .
Не забудьте выкинуть @RawDataBot из вашей группы после этого.
источник
После середины 2018 года:
1 :) Пригласите @getidsbo или
@RawDataBot
в свою группу и получите идентификатор своей группы в поле идентификатора отправленного чата.2 :) используйте неофициальный мессенджер, такой как Plus Messenger, и посмотрите идентификатор вашей группы в информации о группе / канале.
До середины 2018 года: (не использовать)
1: Перейти ( https://web.telegram.org )
2: Перейти к вашему Gorup и найти ссылку на Gorup ( https://web.telegram.org/#/im ? p = g154513121 )
3: Скопируйте это число после g и поставьте перед ним (-)
-154513121
4: Отправьте ваше сообщение в Gorup, который
bot.sendMessage(-154513121, "Hi")
я протестировал сейчас, и работайте как заклинание
источник
After mid-2018
метод.Вы можете получить идентификатор чата таким образом.
В приватном чате с вашим ботом отправьте случайное сообщение. Вы будете искать это сообщение позже.
Получите ваш API-токен от bot_father:
XXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY
Затем в вашем браузере сделайте запрос с этим URL:
Запрос возвращает ответ json, в тексте json найдите
random message
и получите идентификатор чата в этом объекте.источник
Используя python и telethon очень легко получить идентификатор чата. Это решение лучше всего подходит для тех, кто работает с Telegram API.
Если у вас нет telethon, запустите это:
Если у вас нет зарегистрированного приложения с телеграммой, зарегистрируйте его: Ссылка следующая: https://my.telegram.org/
Затем запустите следующий код:
Возможно, вы захотите отправить сообщение в вашу группу, чтобы группа появилась вверху списка.
источник
Вы можете получить идентификатор группы таким же образом. Он появляется в теле сообщения как
message.chat.id
и обычно является отрицательным числом, где обычные чаты являются положительными.Идентификаторы групп и идентификаторы чата могут быть получены только из полученного сообщения, нет доступных вызовов для извлечения активных групп и т. Д. При получении сообщения необходимо запомнить идентификатор группы и сохранить его в кеше или чем-то подобном.
источник
создать бота или, если он уже создан, установить следующим образом:
имеет доступ к сообщениям
по-видимому, независимо от того, сколько лет / новой группы Telegram:
снова добавить бота в группу
создайте файл скрипта и запустите
getUpdates
пример метода:"chat":{"id":-1001202656383,"title"
Надеюсь, что это помогает (HTH)
источник
бот получает следующее сообщение от группы Telegram, в которой находится бот:
извлекать данные по мере необходимости
/ * содержание
источник
ИМХО, лучший способ сделать это - использовать TeleThon, но, учитывая, что ответ от apadana устарел и не подлежит ремонту, я напишу рабочее решение здесь:
этот фрагмент даст вам первые
10
чаты в вашей Telegram.Предположения:
telethon
иnest_asyncio
установленыapi_id
иapi_hash
из my.telegram.orgисточник
источник
Если вы внедряете своего бота, сохраняйте таблицу имени группы -> id и спрашивайте ее с помощью команды. Затем вы также можете отправить по имени.
источник