Telegram Bot - как получить идентификатор группового чата?
Я использую telegram_bot и пытаюсь получить идентификатор groupChat для отправки уведомлений в групповой чат, но не знаю, какие методы мне нужно для этого использовать.
Для получения идентификатора чата я использую message.chat.id, когда бот участвует в чате, но который я должен использовать для получения идентификатора группового чата, не могу найти /
Ответы
Ответ 1
Чтобы получить идентификатор группового чата, выполните следующие действия:
Добавьте Telegram BOT в группу.
Получить список обновлений для вашего BOT:
https://api.telegram.org/bot<YourBOTToken>/getUpdates
Ex:
https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates
Найдите объект "чат":
{"update_id":8393,"message":{"message_id":3,"from":{"id":7474,"first_name":"AAA"},"chat":{"id":,"title":""},"date":25497,"new_chat_participant":{"id":71,"first_name":"NAME","username":"YOUR_BOT_NAME"}}}
Это пример ответа, когда вы добавляете свою BOT в группу.
- Используйте "id" объекта "chat" для отправки ваших сообщений.
Ответ 2
Вот последовательность, которая работала для меня после битвы в течение нескольких часов:
Предположим, что имя бота my_bot.
1- Добавить бота в группу.
Перейдите в группу, нажмите на название группы, нажмите "Добавить участников", в поле поиска найдите свой бот, как это: @my_bot, выберите свой бот и нажмите "Добавить".
2- Отправить фиктивное сообщение боту.
Вы можете использовать этот пример: /my_id @my_bot
(Я пробовал несколько сообщений, не все сообщения работают. Пример выше работает отлично. Возможно, сообщение должно начинаться с /)
3- Перейдите к следующему URL: https://api.telegram.org/botXXX:YYYY/getUpdates
замените XXX: YYYY на ваш токен бота
4 Ищите "чат": { "id": - zzzzzzzzzz,
-zzzzzzzzzz - ваш идентификатор чата (с отрицательным знаком).
5- Тестирование:. Вы можете протестировать отправку сообщения группе с помощью curl:
curl -X POST "https://api.telegram.org/botXXX:YYYY/sendMessage" -d "chat_id=-zzzzzzzzzz&text=my sample text"
Если вы пропустите шаг 2, обновления для группы вы не найдете. Кроме того, если есть несколько групп, вы можете искать имя группы в ответе ( "title": " имя_группы" ).
Надеюсь, это поможет.
Ответ 3
По состоянию на середину 2018 года просто:
- Пригласите @RawDataBot в свою группу.
После присоединения он выведет файл JSON, в котором идентификатор чата будет расположен по адресу message.chat.id.
"message": {
"chat": {
"id": -210987654,
"title": ...,
"type": "group",
...
}
...
}
После этого обязательно удалите @RawDataBot из своей группы.
Ответ 4
После середины 2018 года:
1 :) Пригласите @getidsbo или @RawDataBot
в свою группу и получите идентификатор группы в поле отправленного идентификатора чата.
Message
├ message_id: 338
├ from
┊ ├ id: *****
┊ ├ is_bot: false
┊ ├ first_name: 사이드
┊ ├ username: ******
┊ └ language_code: en
├ chat
┊ ├ id: -1001118554477 // This is Your Group id
┊ ├ title: Test Group
┊ └ type: supergroup
├ date: 1544948900
└ text: A
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")
Я проверил сейчас и работаю как шарм
Ответ 5
Таким образом вы можете получить идентификатор чата.
В приватном чате с вашим ботом отправьте случайное сообщение. Вы будете искать это сообщение позже.
Получите свой API-токен у bot_father: XXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY
Затем в вашем браузере сделайте запрос с таким URL:
https://api.telegram.org/botXXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY/getUpdates
Запрос возвращает ответ json, в тексте json найдите ваш random message
и получите идентификатор чата в этом объекте.
Ответ 6
Вы можете получить идентификатор группы одинаково. Он отображается в теле сообщения как message.chat.id
, и обычно это отрицательное число, где обычные чаты положительны.
Идентификаторы групп и идентификаторы чата могут быть получены только из полученного сообщения, нет доступных вызовов для извлечения активных групп и т.д. Вы должны помнить идентификатор группы, когда вы получаете сообщение, и храните его в кеше или что-то подобное.
Ответ 7
Используя python и telethon очень легко получить идентификатор чата. Это решение лучше всего подходит для тех, кто работает с Telegram API.
Если у вас нет телемарафона, запустите:
pip install telethon
Если у вас нет зарегистрированного приложения с телеграммой, зарегистрируйте его:
Ссылка такая: https://my.telegram.org/
Затем запустите следующий код:
from telethon import InteractiveTelegramClient
from telethon.utils.tl_utils import get_display_name
client = InteractiveTelegramClient('session_id', 'YOUR_PHONE_NUMBER', api_id=1234YOURAPI_ID, api_hash='YOUR_API_HASH')
dialog_count = 10
dialogs, entities = client.get_dialogs(dialog_count)
for i, entity in enumerate(entities):
i += 1 # 1-based index
print('{}. {}. id: {}'.format(i, get_display_name(entity), entity.id))
Возможно, вы захотите отправить сообщение своей группе, чтобы группа появилась вверху списка.