Я использую telegram_bot и пытаюсь получить groupChat id для отправки уведомлений в групповой чат, но не знаю, какие методы я должен для этого использовать.
Для получения id чата я использую message.chat.id, когда бот участвовал в чате, но что мне нужно использовать для получения id группового чата, я не могу найти.
Чтобы получить идентификатор группового чата, выполните следующие действия:
Добавьте 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":"<Group название>"},"дата":25497,"новый_участник_чата":{"id":71,"first_name":"NAME","username":"YOUR_BOT_NAME"}}}
Это пример ответа, когда вы добавляете свой BOT в группу.
Вот последовательность, которая сработала для меня после нескольких часов борьбы:
Предположим, что имя бота - мой_бот.
1- Добавьте бота в группу.
Зайдите в группу, нажмите на название группы, нажмите на Добавить участников, в поисковой строке найдите своего бота следующим образом: @my_bot, выберите своего бота и нажмите добавить.
2- Отправьте фиктивное сообщение боту.
Вы можете использовать этот пример: /my_id @my_bot
(Я попробовал несколько сообщений, не все сообщения работают. Пример выше работает нормально. Возможно, сообщение должно начинаться с /)
3- Перейдите по следующему url: https://api.telegram.org/botXXX:YYYY/getUpdates
замените XXX:YYYY на ваш токен бота
4- Найдите "чат":{"id":-zzzzzzzzzz,
-zzzzzzzzzzzz - это id вашего чата (с отрицательным знаком).
5- Тестирование: Вы можете протестировать отправку сообщения в группу с помощью curl:
curl -X POST "https://api.telegram.org/botXXX:YYYY/sendMessage" -d "chat_id=-zzzzzzzzzz&text=my sample text"
Если вы пропустите шаг 2, то обновления для искомой группы не будет. Также, если групп несколько, вы можете поискать название группы в ответе ("title":"group_name").
Надеюсь, это поможет.
По состоянию на середину 2018, просто:
После присоединения он будет выводить JSON-файл, где ваши чат ID находится в сообщение.чат.идентификатор.
"message": {
"chat": {
"id": -210987654,
"title": ...,
"type": "group",
...
}
...
}
Будьте уверены, чтобы надрать @RawDataBot из вашей группы после этого.
После середины 2018 года: 1:) Приглашаю @getidsbo или `@RawDataBot в вашей группе и получить свой ID группы в присланные поле id чата.
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:) Используйте Посланник unofficicl как фэйсбук и удостоверение группы в группу/канал информация.
До середины 2018 года: (Дон'т использовать)
1: Гото (https://web.telegram.org)
2: Гото вашей группы и найти свою ссылку из группы(https://web.telegram.org/#/im?p=g154513121)
3. скопируйте это число после Г и поставить (-) до этого -154513121
4: Отправить сообщение для группы
"бота".метод SendMessage(-154513121, и"Привет и")`
Я сейчас испытана и работает как Шарм
Вы можете получить идентификатор общаться таким образом.
На приватный чат с ботом, отправьте произвольное сообщение. Вы будете искать позже это сообщение.
Получить ваш API-токен от bot_father : ХХХХХХХХХ:ыыыыыыы-YYYYYYYYYYYYYYYYY_YY
Затем, в вашем браузере сделать запрос по этому URL-адресу :
https://api.telegram.org/botXXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY/getUpdates
Запрос возвращает ответ в формате JSON, в текст JSON поиска `случайные сообщения и получить код чата в этот объект.
Идентификатор группы можно получить тем же способом. Он отображается в теле сообщения как message.chat.id
и обычно является отрицательным числом, в то время как в обычных чатах он положительный.
ID группы и ID чата можно получить только из полученного сообщения, нет никаких вызовов для получения активных групп и т.д. Вы должны запомнить ID группы при получении сообщения и сохранить его в кэше или чем-то подобном.
С помощью Python и телемарафон он's очень легко чтобы получить идентификатор чата. Это решение оптимально для тех, кто работает с Telegram API-интерфейс.
Если вы Don'т иметь телемарафон, выполните это:
pip install telethon
Если вы Don'т иметь зарегистрированный приложения с телеграммой, зарегистрироваться: По ссылке это: 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))
Вы можете отправить сообщение в свою группу, чтобы группа появляется в верхней части списка.