Skip to main content

Telegram

Pour utiliser des Webhooks avec Telegram, il est nécessaire de créer un Bot. Celui-ci nous permet une panoplie d'interactions avec leur API mais il nous permet entre autres d'envoyer de simples requêtes Webhooks pour automatiser l'envoi de messages dans une discussion ou dans un groupe.

Création d'un bot

Pour créer un bot sous Telegram, démarrez une conversation avec @BotFather. Ce bot-ci est celui qui est utilisé pour gérer tout "bot" ou "API" disponible sous Telegram. Cliquez sur "Start" pour démarrer votre interaction

image.png

image.png

La commande "/newbot" vous permettera de créer une clé d'API qui vous permettera d'interagir avec une conversation ou un groupe Telegram comme par exemple pour envoyer un message.


image.png

image.png

Il vous sera ensuite demandé de nommer votre "bot". Le nom de celui-ci doit être unique sur toute la plate-forme et doit se terminer par "bot". Il est possible qu'il soit difficile de trouver un nom disponible mais peu importe ce nom, le nom d'affichage du bot pourra être modifié par un alias/nom d'affichage dans une conversation.

image.png

image.png

Lorsque votre bot sera créé, vous pourrez consulter son état avec une requête HTTPS à l'URL "https://api.telegrma.org/bot[votre token d'API]/getUpdates".

image.png

Création d'un canal/conversation

De façon générale, un groupe ou une conversation sera créé auquel le bot sera joint. S'il s'agit d'un groupe, il serait possible d'ajouter tous les membres de votre équipe d'administrateurs de systèmes pour que vos équipiers puissent consulter les alertes.

Cliquez sur l'icône de crayon pour composer un nouveau message. Il vous sera offert de composer un message privé, créer un groupe ou créer un canal. Un bot peut interagir avec tous ces types de conversations. Dans l'exemple suivant, créons un groupe.

image.png

image.png

Il vous sera ensuite demandé d'ajouter des membres à votre groupe. Vous devrez saisir le nom complet du bot pour qu'il s'affiche dans les suggestions. Vous pourrez ensuite sélectionner le bot et l'ajouter comme membre du groupe.

image.png

image.png

Vous pourrez ensuite confirmer la création de votre groupe à l'aide de la fèche en bas à droite de la page.

image.png

Félicitations! Vous avez dorénavant un groupe dans lequel votre bot pourra dorénavant interagir.

image.png

Utilisation du Webhook

Récupérer l'état du bot

Tout comme vu précédemment, la requête /getUpdates sur l'URL de notre bot nous permet de récupérer son état et ses nouvelles telles que les groupes auxquels notre bot a été ajouté et les messages que le bot a pu observer. Dans la capture suivante, on peut observer que le bot a observé son ajout au chat ID "-4729377648".

image.png

image.png

Nous pourrions ensuite "tagger" notre bot dans un message et on observerait ensuite dans l'objet JSON qui nous est retourné que note bot a vu notre message passer.

image.png

image.png

Envoyer un message

Tout comme pour Discord, lorsque nous avons l'identifiant de la discussion ainsi que la clé D'API de notre bot, nous pourrons dorénavant interagir avec ce groupe en soumettant des requêtes HTTP à l'URL d'API de Telegram!

Pour envoyer un message via un bot Telegram, il suffit de soumettre une requête HTTP par méthode POST et de mentionner les variables POST "chat_id" et "text"

La requête cURL suivante serait donc suffisante pour envoyer un message :

curl -s -X POST https://api.telegram.org/bot[API KEY]/sendMessage -F chat_id='[identifiant du chat]' -F text="[message à envoyer]"

Les options de la commande peuvent être décortiquées comme tel :

  • -s permet d'exécuter silencieusement la requête
  • -X stipule la méthode de transfert de données, dans ce cas-ci, le contenu du message sera acheminé par POST
  • -F spécifie une variable de formulaire soumise par POST ainsi que sa valeur associée
    • chat_id=[identifiant du chat] spécifie à Telegram dans quel canal envoyer le message
    • text=[message] spécifie à Telegram le contenu du message à envoyer

L'URL contacté par la commande cURL est composée de "https://api.telegram.org/bot" suivi de la clé d'API que BotFather vous a spécifié et se termine par /sendMessage dans ce cas pour la commande d'envoyer un message. Nous avons aussi utilisé précédemment /getUpdates pour récupérer l'état du bot.