Aller au contenu
Rechercher dans
  • Plus d’options…
Rechercher les résultats qui contiennent…
Rechercher les résultats dans…
Anthony

intermédiaire Logs Discord

Messages recommandés

Anthony

Il peut être intéressant d'ajouter une fonctionnalité permettant d'enregistré toutes sortes d'informations depuis votre serveur de jeu sur discord.

Dans ce tutoriel, je vais vous expliquer comment fonctionne les webhook discord.

 

Rédaction de la fonction 

Cette fonction sera utilisé évidemment côté serveur.

 

local WebhookKey = ""

function sendWebhookToDiscord()

end

Voilà, la fonction est déclarée, mais avant tous, nous allons avoir besoin de l'URL du webhook.

 

Pour ce faire, rendez-vous sur Discord puis suivez les étapes:

 

1 - Accéder aux Paramètres du serveur 

 

2019-04-10_02h42_48.png.8656b95ea6bb822ebcb8ee065d565186.png

 

2 - Accéder à l'onglet Webhook

 

2019-04-10_02h44_04.thumb.png.ca3ab1ed686be6e2d79250c69b85389d.png

 

3 - Procéder a la création du webhook

 

  • Le nom du webhook
  • Le salon dans lequel il vous communiquera les informations
  • Éventuellement une image

 

⚠️ Il est possible de créer plusieurs webhooks pour différentes communications d'informations ! 

 

2019-04-10_02h48_58.thumb.png.c163fa1cfc05c55e40558185770d634a.png

 

Avant d’enregistrer le webhook penser a copier l'URL et a le coller dans le fichier serveur de votre script !

 

local WebhookKey = "https://discordapp.com/api/webhooks/565336419350872064/SzBXtGmhUhu4py0w5qB3IWluFXWuBN8BcCdlkUvJrUghbsG5RHODv3RoL0fhLQUTnJjr"

function sendWebhookToDiscord()

end

 

Il est maintenant temps d'entrer dans le vif du sujet.

 

Nous allons utiliser une native permettant d'envoyer une information en externe depuis votre script. Pour plus d'informations, rendez-vous ici .

 

local WebhookKey = "https://discordapp.com/api/webhooks/565336419350872064/SzBXtGmhUhu4py0w5qB3IWluFXWuBN8BcCdlkUvJrUghbsG5RHODv3RoL0fhLQUTnJjr"

function sendWebhookToDiscord()
    PerformHttpRequest(WebhookKey, function(errorCode, resultData, resultHeaders) end, 'POST', json.encode({}), { ['Content-Type'] = 'application/json' })
end

Cette native nécessite deux arguments obligatoires.

 

  • Un URL pour effectuer la requête HTTP.

         Dans notre cas, ce sera la variable WebhookKey.

  • Un callback (fonction de rappel à appeler une fois la demande terminée.

        Il n'est pas nécessaire de mettre quelque chose dans le callback, mais je vais vous montrer les informations que les trois arguments          du callback peuvent me retourner.

 

Hors nous allons ajouter trois arguments supplémentaires.

 

  • La méthode REST que nous allons utiliser.

         Il existe plusieurs méthodes comme GET, POST, BUT, PATCH, DELETE.. mais celle qui va nous intéressé sera POST 

  • Les données que nous allons envoyer a notre webhook.

         Tous simplement les informations que nous souhaitons transmettre sur discord

  • L'en-têtes qui indique le type MIME de la ressource.

        Plus technique et sans réel importance dans votre cas, le plus important et de ne pas l'oublier !

 

Nous allons maintenant encoder les informations que nous souhaitons envoyer en JSON pour faire la requête.

 

Exemple tous bête, voilà comment je veux appeler ma fonction avec les informations que je veux faire passer.

 

sendWebhookToDiscord("Mon serveur", "Le serveur vient de ce lancer !", 16711680)

 

Nous allons devoir réceptionner les différents données, voici comment procéder:

local WebhookKey = "https://discordapp.com/api/webhooks/565336419350872064/SzBXtGmhUhu4py0w5qB3IWluFXWuBN8BcCdlkUvJrUghbsG5RHODv3RoL0fhLQUTnJjr"

function sendWebhookToDiscord(name, message, color)

    PerformHttpRequest(WebhookKey, function(errorCode, resultData, resultHeaders) end, 'POST', json.encode({}), { ['Content-Type'] = 'application/json' })
end

Dans notre fonction:

  • name = "Mon serveur"
  • message = "Le serveur vient de ce lancer !"
  • color = 16711680

 

⭐Pour la couleur, rendez-vous sur le site https://convertingcolors.com, choisissez votre couleur, puis récupérer la valeur décimal ! 

 

Les données sont passé dans la fonction, maintenant nous allons devoir les mettre en formes afin de les envoyer, nous allons créer une variable qui regroupera les données.

 

local WebhookKey = "https://discordapp.com/api/webhooks/565336419350872064/SzBXtGmhUhu4py0w5qB3IWluFXWuBN8BcCdlkUvJrUghbsG5RHODv3RoL0fhLQUTnJjr"

function sendWebhookToDiscord(name, message, color)

    local myEmbed = {
        {
            title = message,
            color = color,
            type = "rich",
            footer =  {
                text = "mon Webhook discord",
           }
        }
    }

    PerformHttpRequest(WebhookKey, function(errorCode, resultData, resultHeaders) end, 'POST', json.encode({}), { ['Content-Type'] = 'application/json' })
end

Vous allez me dire comment je sais la mise en forme qui faut, tous simplement de la documentation, ce site vous permettra de voir la mise en forme de votre variable , ⚠️ La mise en forme sur le site est en JSON, vous devez la faire en LUA, prenez exemple sur la variable myEmbed ! Lien vers le site

 

Il est maintenant temps mettre tous ça dans l'encodage en JSON: 

 

local WebhookKey = "https://discordapp.com/api/webhooks/565336419350872064/SzBXtGmhUhu4py0w5qB3IWluFXWuBN8BcCdlkUvJrUghbsG5RHODv3RoL0fhLQUTnJjr"

function sendWebhookToDiscord(name, message, color)

    local myEmbed = {
        {
            title = message,
            color = color,
            type = "rich",
            footer =  {
                text = "mon Webhook discord",
           }
        }
    }

    PerformHttpRequest(WebhookKey, function(errorCode, resultData, resultHeaders) end, 'POST', json.encode({ username = name,embeds = myEmbed}), { ['Content-Type'] = 'application/json' })
end

Si vous avez bien observer, j'ai mis username / embeds dans le json.encode(), pour en savoir plus, rendez vous sur La documentation de Discord pour les webhooks

 

Nous allons maintenant tester tous ça, voici un aperçu global du code:

 

local WebhookKey = "https://discordapp.com/api/webhooks/565336419350872064/SzBXtGmhUhu4py0w5qB3IWluFXWuBN8BcCdlkUvJrUghbsG5RHODv3RoL0fhLQUTnJjr"

function sendWebhookToDiscord(name, message, color)

    local myEmbed = {
        {
            title = message,
            color = color,
            type = "rich",
            footer =  {
                text = "mon Webhook discord",
           }
        }
    }

    PerformHttpRequest(WebhookKey, function(errorCode, resultData, resultHeaders) end, 'POST', json.encode({ username = name,embeds = myEmbed}), { ['Content-Type'] = 'application/json' })
end


sendWebhookToDiscord("Mon serveur", "Le serveur vient de ce lancer !", 16711680)

Voici le resultat sur discord lors du démarrage du serveur:

 

2019-05-05_22h19_34.png.3c73135e6422cee9bb5ea3666f90bd6e.png

 

Vous pouvez également ajouter les trois print, simple cas de prévention ! 

 

local WebhookKey = "https://discordapp.com/api/webhooks/565336419350872064/SzBXtGmhUhu4py0w5qB3IWluFXWuBN8BcCdlkUvJrUghbsG5RHODv3RoL0fhLQUTnJjr"

function sendWebhookToDiscord(name, message, color)

    local myEmbed = {
        {
            title = message,
            color = color,
            type = "rich",
            footer =  {
                text = "mon Webhook discord",
           }
        }
    }

    PerformHttpRequest(WebhookKey, function(errorCode, resultData, resultHeaders)
        print("Returned error code:" .. tostring(errorCode))
        print("Returned data:" .. tostring(resultData))
        print("Returned result Headers:" .. tostring(json.encode(resultHeaders)))
    end, 'POST', json.encode({ username = name,embeds = myEmbed}), { ['Content-Type'] = 'application/json' })
end


sendWebhookToDiscord("Mon serveur", "Le serveur vient de ce lancer !", 16711680)

 

 

 

Pour pouvoir faire une requête depuis un autre script, nous allons utiliser un Event.

 

Ajouter l'event dans votre script côté serveur a la suite du code que nous avons rédigé.

 

RegisterServerEvent("notifyDiscord")
AddEventHandler("notifyDiscord", function(info1, info2, info3)
	sendToDiscord(info1, info2, info3)
end)

 

Pour sollicité cet Event, rien de plus simple, dans un script différent, faite une requête

TriggerServerEvent("notifyDiscord", "Mon serveur", "Ma description", 16711680)

 

En espérant vous avoir éclairci sur les webhook. Libre de votre imagination a présent ! Courage a vous ! 

Partager ce message


Lien à poster
Partager sur d’autres sites
JagerBom

super tuto! merci

Partager ce message


Lien à poster
Partager sur d’autres sites
James Trema

Bonsoir, super tuto merci beaucoup ! +1 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×
×
  • Créer...

Information importante

En utilisant ce site, vous acceptez les présents règlements Conditions d’utilisation, Politique de confidentialité,Règles.