Source de données : Telegram
1Présentation
Telegram permet de créer des "espaces" de communication, vers lesquels il est possible d'envoyer des notifications.
Si vous avez correctement configuré les paramètres de connexion à Telegram, Temma crée automatiquement un objet de type \Temma\Datasources\Telegram, avec lequel vous pourrez envoyer des messages. Par convention, nous partirons du principe que vous avez nommé cette connexion telegram dans le fichier etc/temma.php (voir la documentation de la configuration).
Dans les contrôleurs, la connexion à Telegram est alors disponible en écrivant :
$tg = $this->telegram;
Dans les autres objets gérés par le le composant d'injection de dépendances, la connexion à Google Chat est accessible en écrivant :
$tg = $loader->dataSources->telegram;
$tg = $loader->dataSources['telegram'];
2Configuration
Pour envoyer des messages sur Telegram, vous devez d'abord créer un bot. Pour cela, cherchez l'utilisateur BotFather, puis envoyez-lui le message /newbot. Répondez à ses questions et vous recevrez un jeton d'API (“API token”).
Dans le fichier etc/temma.php (voir la documentation de la configuration), vous pourrez alors déclarer le DSN (Data Source Name) qui permet de se connecter à Telegram.
Le DSN de connexion à Telegram s'écrit de la forme : telegram://API_TOKEN
Pour envoyer des messages, vous aurez besoin d'un identifiant de chat, correspondant à la conversation ou au canal où vous souhaitez envoyer les messages :
-
Pour une conversation privée, envoyez un message à votre bot, puis exécutez la commande suivante :
(en remplaçant <TOKEN> par le jeton reçu)curl -s https://api.telegram.org/bot<TOKEN>/getUpdates
Dans le flux JSON retourné, cherchez une section "chat": {"id": 123456789} pour récupérer l'identifiant de chat. -
Pour une conversation de groupe, ajoutez le bot au groupe, puis exécutez la commande suivante
(en remplaçant <TOKEN> par le jeton reçu)curl -s https://api.telegram.org/bot<TOKEN>/getUpdates
Dans le flux JSON retourné, cherchez une section "chat": {"id": -123456789} (nombre négatif) pour récupérer l'identifiant de chat. - Pour envoyer des messages dans un canal, ajoutez le bot au canal en tant qu'administrateur. L'identifiant de chat est le nom du canal (de la forme @mon_canal).
3Contenu des notifications
Les notifications peuvent contenir du texte simple, ou du code HTML simplifié.
4Appels unifiés
4.1Accès de type tableau
// envoie un message simple
$tg['123456789'] = "Message à envoyer";
// message contenant du HTML
$tg['@mon_canal'] = 'Texte avec du <i>formattage</i> <b>simple</b>.';
4.2Méthode avancée
// envoie un message simple
$tg->set('@mon_canal', "Message à envoyer");
// notification riche
$tg->set('123456789', 'Texte avec du <i>formattage</i> <b>simple</b>.');