2015-09-06 4 views
53

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

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

+1

Я управляю ботом для этого. Надеюсь, это поможет, проверьте это

ответ

5

Вы можете получить идентификатор группы так же. Он появляется в теле сообщения как message.chat.id, и это обычно отрицательное число, где обычные чаты положительны.

Идентификаторы групп и идентификаторы чата могут быть получены только из полученного сообщения, нет доступных вызовов для извлечения активных групп и т. Д. Вы должны помнить идентификатор группы, когда вы получаете сообщение, и храните его в кеше или что-то подобное.

+0

Может ли кто-нибудь еще подтвердить это? Я почти говорю, что да, прочитав документы. Я бы хотел получить chat_id из ссылки группы, чтобы выполнить мои требования. – PrimeTimeTran

70

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

  1. Добавьте СЭП Телеграмма к группе.

  2. Получить список обновлений для СЭП:

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

    Ex:

    https://api.telegram.org/botjbd78sadvbdy63d37gda37bd8/getUpdates 
    
  3. Look для "поболтать" объекта:

{» update_id ": 8393," сообщение ": {" message_id ": 3," с ": {" ID ": 7474," first_name ":" ААА "} , "Чат": { "ID": "Название": ""}, "дата": 25497, "new_chat_participant": { "ID": 71, "first_name": "NAME", "имя": "YOUR_BOT_NAME "}}}

Это образец ответа, когда вы добавляете свой BOT в группу.

  1. Используйте «id» объекта «chat» для отправки сообщений.
+1

может привести пример? –

+0

Как добавить бота в группу? Создал бота, сделал/setjoingroups. Каким будет следующий шаг? – WannaBeCoder

+1

Jost попал в ваш профиль бота и нажмите «добавить в группу». Боты не могут быть приглашены в группу, как обычные пользователи. – golodenko

52

Вот последовательность, которая работала для меня после того, как изо всех сил в течение нескольких часов:

Предположим имя бота my_bot.

1- Добавить бота в группу.
Перейдите к группе, нажмите по имени группы, нажмите Добавить участников, в поле поиска найдите свой бот следующим образом: @my_bot, выберите свой бот и нажмите «Добавить».

2- Отправить фиктивное сообщение боту.
Вы можете использовать этот пример: /my_id @my_bot
(Я пробовал несколько сообщений, не все сообщения работают. Пример выше работает отлично.Может быть, сообщение должно начинаться с /)

3- Перейти к следующему адресу:https://api.telegram.org/botXXX:YYYY/getUpdates
заменить XXX: YYYY с ботом лексем

4 Посмотрите на "чат": { "ID": -zzzzzzzzzz,
-zzzzzzzzzz - ваш идентификатор вашего чата (с отрицательным знаком).

5- Тестирование: Вы можете проверить отправку сообщения в группу с завитком:

curl -X POST "https://api.telegram.org/botXXX:YYYY/sendMessage" -d "chat_id=-zzzzzzzzzz&text=my sample text" 

Если вы пропустите шаг 2, то не было бы никакого обновления для группы, которую вы ищете. Также, если существует несколько групп, вы можете найти имя группы в ответе («title»: «group_name»).

Надеюсь, это поможет.

+0

Отличный распад на том, как настроить BOT. –

+0

Я отправил * одно сообщение к боту, но он не работал мгновенно, ожидая нескольких секунд (или, вероятно, минут), и попытка завитки снова работала. – LiveWireBT

+0

Это сработало для меня;) – FranzHuber23

1

Использование python и telethon очень легко получить идентификатор чата. Это решение лучше всего подходит для тех, кто работает с 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)) 

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

12

По состоянию на конец 2017 года, просто:

  • Пригласить @RawDataBot к вашей группе.

После присоединения к нему будет выводить JSON-файл, где ваш чат идентификатор будет расположен в message.chat.id.

"message": { 
    "chat": { 
     "id": -210987654, 
     "title": ..., 
     "type": "group", 
     ... 
    } 
    ... 
} 

Обязательно удалите @RawDataBot из вашей группы после этого.