web-dev-qa-db-fra.com

Comment puis-je ajouter mon bot à un canal?

J'utilise mon bot pour annoncer des nouvelles importantes, mais lorsque j'utilise sendMessage sur le canal, le message d'erreur suivant s'affiche:

{"ok":false,"error_code":403,"description":"Error: Forbidden: bot is not a participant of the channel"}

Dans le Change Log , ils mentionnent qu'il n'est pas possible via le client d'envoyer un message à un canal, mais quelle est l'autre manière de le faire?

La question est donc: comment ajouter mon bot à la chaîne?

63
user4374121

Désormais, tous les clients le permettent, mais ce n’est pas très simple.
Dans tout client Telegram:

  1. Ouvrir les infos de la chaîne (dans le titre de l'application)
  2. Choisissez Administrators
  3. Ajouter un administrateur
  4. Il n'y aura pas de robots dans la liste de contacts, vous devez donc le rechercher. Entrez le nom d'utilisateur de votre bot
  5. En cliquant dessus, vous le faites en tant qu'administrateur.

enter image description here

104
Stas Parshin

Voici comment j'ai ajouté un bot à mon canal et configuré les notifications:

  1. Assurez-vous que le canal est public (vous pourrez le rendre privé plus tard)
  2. Ajouter des administrateurs> Tapez le nom d'utilisateur du bot et rendez-le administrateur
  3. Votre bot va rejoindre votre chaîne
  4. définir un identifiant de canal en définissant son URL comme

telegram.me/whatsIWantAndAvailable

l'identifiant de la chaîne sera @ whatIWantAndAvailable

Maintenant, configurez votre bot pour envoyer des notifications en envoyant les messages ici:

https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @wtherIWantAndAvailable & text = Test

le message que le bot va notifier est: Test

Je suggère fortement un code URL du message comme

https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @wtherIWantAndAvailable & text = Test de% 20if% 20e% 20%

en php, vous pouvez utiliser urlencode ("Testez si cela fonctionne"); dans js, vous pouvez encoderURIComponent ("Testez si cela fonctionne");

J'espère que ça aide

49
Botirla Sorin

A partir de maintenant:

  • Seul le créateur de la chaîne peut ajouter un bot.
  • Les autres administrateurs ne peuvent pas ajouter de robots à des canaux.
  • La chaîne peut être publique ou privée (peu importe)
  • les bots ne peuvent être ajoutés que comme administrateurs, pas comme membres. *

Pour ajouter le bot à votre chaîne:

  • cliquez sur le nom de la chaîne: enter image description here

  • cliquez sur admins: enter image description here

  • cliquez sur Add Admin: enter image description here

  • recherchez votre bot comme @votre_nom_bot, et cliquez sur ajouter: ** enter image description here

* Sur certaines plates-formes telles que le client de télégramme natif mac, il peut sembler que vous pouvez ajouter un bot en tant que membre, mais à la fin, cela ne fonctionnera pas.
** le bot n'a pas besoin d'être dans votre liste de contacts.

22
apadana

Utilisez-vous le bon chat_id et incluez-vous le jeton de votre bot après "bot" dans l'adresse? (api.telegram.org/bottoken/sendMessage)

Cette page explique quelques points concernant l’envoi (plus bas dans la section "sendMessage") - éléments de base, mais j’oublie souvent les éléments de base.

Citer:

Pour utiliser la méthode sendMessage, nous devons utiliser le chat_id approprié.

Tout d’abord, envoyons la commande/start à notre bot via un client Telegram.

Après avoir envoyé cette commande, exécutons une commande getUpdates.

curl -s \
-X POST \ https://api.telegram.org/bot<token>/getUpdates \ | jq .

La réponse sera comme suit

{   "result": [
     {
       "message": {
        "text": "/start",
         "date": 1435176541,
         "chat": {
           "username": "yourusername",
           "first_name": "yourfirstname",
           "id": 65535
         },
         "from": {
           "username": "yourusername",
           "first_name": "yourfirstname",
           "id": 65535
         },
         "message_id": 1
       },
       "update_id": 714636917
     }    ],   "ok": true }

Nous sommes intéressés par la propriété result.message [0] .chat.id, enregistrez cette information ailleurs.

Veuillez noter qu'il ne s'agit que d'un exemple, vous pouvez configurer un automatisme pour traiter ces informations. Comment envoyer un message? C'est simple, regardons cet extrait.

curl -s \
-X POST \ https://api.telegram.org/bot<token>/sendMessage \
-d text="A message from your bot" \
-d chat_id=65535 \ | jq .

Où chat_id est l'information sauvegardée auparavant.

J'espère que ça aide.

2
JGR