web-dev-qa-db-fra.com

Télégramme bot - comment obtenir un identifiant de discussion de groupe?

j'utilise telegram_bot , et j'essaie d'obtenir groupChat id pour envoyer des notifications à la discussion en groupe, mais je ne sais pas quelles méthodes je dois utiliser pour cela.

Pour obtenir l'identifiant de chat, je l'utilise pour message.chat.id lorsque le bot a participé au chat mais que je dois utiliser pour obtenir un identifiant de chat de groupe ne peut pas trouver /

118
Roman Podpryatov

Pour obtenir l'identifiant de discussion de groupe, procédez comme suit:

  1. Ajoutez le télégramme BOT au groupe.

  2. Obtenez la liste des mises à jour pour votre BOT:

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

    Ex:

    https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates
    
  3. Recherchez l'objet "chat":

{"update_id": 8393, "message": {"message_id": 3, "à partir de::" "id": 7474, "prénom_nom": "AAA"}, "chat": {"id":, "titre ":" "}," date ": 25497," new_chat_participant ": {" id ": 71," prénom_nom ":" NOM "," nomutilisateur ":" YOUR_BOT_NAME "}}}

Voici un exemple de réponse lorsque vous ajoutez votre BOT à un groupe.

  1. Utilisez le "id" de l'objet "chat" pour envoyer vos messages.
155
Maverick_Java

Voici la séquence qui a fonctionné pour moi après avoir lutté pendant plusieurs heures:

Supposons que le nom du bot est my_bot.

1- Ajoutez le bot au groupe.
Allez au groupe, cliquez sur le nom du groupe, cliquez sur Ajouter des membres, dans le champ de recherche recherchez votre bot comme suit: @my_bot, sélectionnez votre bot et cliquez sur ajouter.

2- Envoyer un message factice au bot.
Vous pouvez utiliser cet exemple: /my_id @my_bot
(J'ai essayé quelques messages, tous les messages ne fonctionnent pas. L'exemple ci-dessus fonctionne bien. Peut-être que le message devrait commencer par /)

- Aller à l'URL suivant:https://api.telegram.org/botXXX:YYYY/getUpdates
remplacez XXX: YYYY par votre jeton bot

4- Rechercher "chat": {"id": - zzzzzzzzzz,
- zzzzzzzzzz est votre identifiant de discussion (avec le signe négatif).

5- Testing: Vous pouvez tester l'envoi d'un message au groupe avec un curl:

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

Si vous manquez l'étape 2, il n'y aura pas de mise à jour pour le groupe que vous recherchez. De même, s'il existe plusieurs groupes, vous pouvez rechercher le nom du groupe dans la réponse ("title": "nom_groupe").

J'espère que cela t'aides.

112
apadana

À partir de la mi-2018, simplement:

  • Inviter @ RawDataBot à votre groupe.

Lors de votre inscription, un fichier JSON contenant votre identifiant de chat sera situé à message.chat.id.

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

Assurez-vous de retirer @RawDataBot de votre groupe par la suite.

64
eivamu

Après la mi-2018:
1 :) Invitez @ getidsbo ou @RawDataBot dans votre groupe et obtenez votre identifiant de groupe dans le champ Identifiant de discussion envoyé.

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 :) utilisez un Messenger non officiel comme Plus Messenger et voyez votre identifiant de groupe dans les informations de groupe/canal.

Avant mi-2018: (ne pas utiliser)
1: Goto ( https://web.telegram.org )
2: Allez vers votre Gorup et trouvez votre lien de Gorup ( https://web.telegram.org/#/im?p=g154513121 )
3: Copiez ce nombre après g et mettez un (-) avant que -154513121
4: Envoyez votre message à Gorup bot.sendMessage(-154513121, "Hi")
J'ai testé maintenant et travaille comme un charme

24

Vous pouvez obtenir un ID de chat de cette manière.

En chat privé avec votre bot, envoyez un message au hasard. Vous chercherez ce message plus tard.

Obtenez votre jeton API de bot_father: XXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY

Ensuite, sur votre navigateur, faites une demande avec cette URL:

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

La demande renvoie une réponse json. Dans le texte json, recherchez votre random message et obtenez un identifiant de discussion dans cet objet.

8
Yigit Yuksel

Vous pouvez récupérer l'ID de groupe de la même manière. Il apparaît dans le corps du message sous la forme message.chat.id et il s'agit généralement d'un nombre négatif, où les discussions normales sont positives.

Les identifiants de groupe et les identifiants de conversation ne peuvent être récupérés qu'à partir d'un message reçu. Aucun appel n'est disponible pour récupérer des groupes actifs, etc. Vous devez vous souvenir de l'identifiant de groupe lorsque vous recevez le message et le stocker en cache ou quelque chose de similaire.

7
Chris Brand

En utilisant python et en téléthon, il est très facile d’obtenir un identifiant de chat. Cette solution est idéale pour ceux qui travaillent avec les API de télégrammes.

Si vous n'avez pas de téléthon, lancez ceci:

pip install telethon

Si vous n'avez pas d'application enregistrée avec télégramme, enregistrez-en une: enter image description here Le lien est le suivant: https://my.telegram.org/

Puis lancez le code suivant:

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

Vous souhaiterez peut-être envoyer un message à votre groupe afin que celui-ci apparaisse en haut de la liste.

5
apadana