170 Avenue Jean Jaurès, 21000 Dijon

+33 3 73 27 02 86

contact@cadoles.com

Envoyer un message sur RocketChat via son API en Go

Nous allons voir comment envoyer simplement un message sur Rocket Chat via son API, le tout en Go.

Tout d’abord, vous devez importer les paquets nécessaires. Vous aurez besoin de “net/http” pour envoyer une requête HTTP et de “encoding/json” pour encoder et décoder du JSON:

import (
    "net/http"
    "encoding/json"
)

Ensuite, définissez l’URL de l’API de RocketChat et le canal sur lequel vous souhaitez envoyer le message. Vous devrez également définir un nom d’utilisateur et un jeton d’authentification qui seront utilisés pour vous authentifier auprès de l’API.

const apiURL = "https://your-rocket-chat-server.com/api/v1"
const channel = "CHANNEL_NAME"
const username = "USERNAME"
const token = "AUTH_TOKEN"

Ensuite, créez une structure de données JSON qui sera utilisée pour envoyer les données de votre message à l’API.

type message struct {
    Channel string `json:"channel"`
    Text    string `json:"text"`
}

Créez une fonction pour envoyer le message. Cette fonction prendra en entrée le texte du message à envoyer et enverra une requête POST à l’API de RocketChat avec le message codé en JSON dans le corps de la requête.

func sendMessage(text string) error {
    // Créez une nouvelle instance de la structure de message avec votre texte et le canal cible
    m := message{Channel: channel, Text: text}

    // Encodez la structure en JSON
    payload, err := json.Marshal(m)
    if err != nil {
        return err
    }

    // Créez une nouvelle requête POST avec l'URL de l'API et le corps de la requête codé en JSON
    req, err := http.NewRequest("POST", apiURL+"/chat.postMessage", bytes.NewBuffer(payload))
    if err != nil {
        return err
    }

    // Ajoutez les en-têtes de l'API, y compris le nom d'utilisateur et le jeton d'authentification
    req.Header.Add("Content-Type", "application/json")
    req.Header.Add("X-Auth-Token", token)
    req.Header.Add("X-User-Id", username)

    // Envoyez la requête à l'API en utilisant le client HTTP par défaut
    _, err = http.DefaultClient.Do(req)
    if err != nil {
        return err
    }

    return nil
}

Vous pouvez maintenant utiliser cette fonction pour envoyer un message en appelant simplement “sendMessage” et en passant le texte du message en tant qu’argument:

err := sendMessage("Ceci est un message de test")
if err != nil {
    // Traitez l'erreur si nécessaire
}

Et c’est tout! Vous avez maintenant un programme Go qui envoie un message à un canal RocketChat via son API.

Note: assurez-vous de remplacer les chaînes de caractères de constante (comme l’URL de l’API et le nom d’utilisateur) avec les valeurs de votre serveur RocketChat. Vous pouvez obtenir votre jeton d’authentification en suivant la documentation de l’API de RocketChat.