Подтвердить что ты не робот

Telegram Bot - как получить идентификатор группового чата?

Я использую telegram_bot и пытаюсь получить идентификатор groupChat для отправки уведомлений в групповой чат, но не знаю, какие методы мне нужно для этого использовать.

Для получения идентификатора чата я использую message.chat.id, когда бот участвует в чате, но который я должен использовать для получения идентификатора группового чата, не могу найти /

4b9b3361

Ответ 1

Чтобы получить идентификатор группового чата, выполните следующие действия:

  1. Добавьте Telegram BOT в группу.

  2. Получить список обновлений для вашего BOT:

    https://api.telegram.org/bot<YourBOTToken>/getUpdates
    

    Ex:

    https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates
    
  3. Найдите объект "чат":

{"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 в группу.

  1. Используйте "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

Если у вас нет зарегистрированного приложения с телеграммой, зарегистрируйте его: enter image description here Ссылка такая: 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))

Возможно, вы захотите отправить сообщение своей группе, чтобы группа появилась вверху списка.