it-swarm-es.com

Telegram bot: ¿cómo obtener una identificación de chat de grupo?

he estado usando telegram_bot , y tratando de obtener la identificación de GroupChat para enviar notificaciones al chat de grupo, pero no sé qué métodos debo usar para ello.

Para obtener el Id. De chat que utilizo para message.chat.id cuando el bot participó en el chat pero que tengo que usar para obtener el Id. De chat de grupo no puedo encontrar /

98
Roman Podpryatov

Para obtener el ID de chat de grupo, haga lo siguiente:

  1. Agrega el Telegram BOT al grupo.

  2. Obtenga la lista de actualizaciones para su BOT:

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

    Ex:

    https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates
    
  3. Busque el objeto "chat":

{"update_id": 8393, "message": {"message_id": 3, "from": {"id": 7474, "first_name": "AAA"}, "chat": {"id":, "title ":" "}," fecha ": 25497," new_chat_participant ": {" id ": 71," first_name ":" NAME "," username ":" YOUR_BOT_NAME "}}}

Esta es una muestra de la respuesta cuando agrega su BOT a un grupo.

  1. Utilice el "id" del objeto "chat" para enviar sus mensajes.
129
Maverick_Java

Aquí está la secuencia que me funcionó después de luchar durante varias horas:

Supongamos que el nombre del bot es my_bot .

1- Añadir el bot al grupo.
Vaya al grupo, haga clic en el nombre del grupo, haga clic en Agregar miembros, en el cuadro de búsqueda busque su bot así: @my_bot, seleccione su bot y haga clic en agregar.

2- Enviar un mensaje ficticio al bot.
Puedes usar este ejemplo: /my_id @my_bot
(Intenté algunos mensajes, no todos los mensajes funcionan. El ejemplo anterior funciona bien. Tal vez el mensaje comience con /)

3- Ir a la siguiente url: https://api.telegram.org/botXXX:YYYY/getUpdates
reemplaza XXX: YYYY con tu token de bot

4- Busque "chat": {"id": - zzzzzzzzzz,
- zzzzzzzzzz es tu id de chat (con el signo negativo).

5- Pruebas: Puedes probar enviando un mensaje al grupo con una curva:

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

Si omite el paso 2, no habrá ninguna actualización para el grupo que está buscando. Además, si hay varios grupos, puede buscar el nombre del grupo en la respuesta ("título": " nombre_grupo ").

Espero que esto ayude.

103
apadana

A partir de mediados de 2018, simplemente:

  • Invite @RawDataBot a su grupo.

Al unirse, generará un archivo JSON en el que su id de chat estará ubicado en message.chat.id .

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

Asegúrese de patear @RawDataBot de su grupo luego.

55
eivamu

Después de mediados de 2018:
1 :) Invita @getidsbo o @RawDataBot a tu grupo y obtén tu ID de grupo en el campo de ID de chat enviado.

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 :) use un Messenger de unofficicl como Plus Messenger y vea su ID de grupo en la información del grupo/canal.

Antes de mediados de 2018: (no usar)
1: Ir a ( https://web.telegram.org )
2: Vaya a su Gorup y encuentre su enlace de Gorup ( https://web.telegram.org/#/im?p=g154513121 )
3: Copie ese número después de g y coloque un (-) Antes de eso -154513121
4: Envíe su mensaje a Gorup bot.sendMessage(-154513121, "Hi")
Probé ahora y trabajo como un amuleto

18

Puedes obtener la ID de chat de esta manera.

En el chat privado con tu bot, envía un mensaje al azar. Buscarás este mensaje más tarde.

Obtenga su token de API de bot_father: XXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY

Luego, en su navegador realice una solicitud con esa url:

https://api.telegram.org/botXXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY/getUpdates

La solicitud devuelve una respuesta json, en json text busque su random message y obtenga el id de chat en ese objeto.

8
Yigit Yuksel

Puede recuperar el ID de grupo de la misma manera. Aparece en el cuerpo del mensaje como message.chat.id y generalmente es un número negativo, donde los chats normales son positivos.

Las ID de grupo y las ID de chat solo se pueden recuperar de un mensaje recibido, no hay llamadas disponibles para recuperar grupos activos, etc. Debe recordar la ID de grupo cuando reciba el mensaje y almacenarlo en el caché o algo similar.

7
Chris Brand

Usar python y telethon es muy fácil obtener id de chat. Esta solución es la mejor para aquellos que trabajan con la API de telegram.

Si no tienes teletón, ejecuta esto:

pip install telethon

Si no tiene una aplicación registrada con telegrama, registre una:  enter image description here El enlace es el siguiente: https://my.telegram.org/

Luego ejecuta el siguiente código:

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))

Es posible que desee enviar un mensaje a su grupo para que el grupo aparezca en la parte superior de la lista.

5
apadana