Webhook

Avec les webhooks vous allez pouvoir recevoir les évènements du site.

Liste des événements disponible:

Evénement Description

user.vote

Se produit chaque fois qu'un utilisateur va voter pour un de vos serveurs.

user.follow

Se produit chaque fois qu'un utilisateur va suivre pour un de vos serveurs.

user.unfollow

Se produit chaque fois qu'un utilisateur va arrêter de suivre pour un de vos serveurs.

train.start

Se produit chaque fois qu'un train de la hype commence.

train.finish

Se produit chaque fois qu'un train de la hype se termine.

train.levelup

Se produit chaque fois train de la hype va augmenter de niveau.

train.vote

Se produit chaque fois qu'un utilisateur voter pour un de vos serveurs pendant le train de la hype.

Exemple d'utilisation du package composer: https://github.com/Maxlego08/Azuriom-SMV/blob/master/src/Controllers/Admin/AdminController.php

API

POST https://serveur-minecraft-vote.fr/api/v1/webhook/create

Headers

NameTypeDescription

X-SMV-Signature*

String

La signature est composé d'un timestamp suivi par un hach. Sous la forme: timestamp.hach Pour obtenir le hach vous devez utiliser la méthode HMAC en SHA256 en utilisant la clé secrète de l'utilisateur. Le contenu qui va être haché sera un timestamp.userID.Et le userID est l'ID en base64 de l'utilisateur.

Request Body

NameTypeDescription

events*

Array

La liste des événements que le webhook doit écouter.

url*

String

L'URL de votre site que le webhook va devoir appeler

userData*

String

L'ID de l'utilisateur en base64. L'ID est trouvable en prenant la deuxième partie de la clé secrète.

La clé est composée d'un préfix avec smv_sk_ puis ensuite d'une suite de caractères unique et se termine par . et l'id de l'utilisateur en base64.

description

String

La description du webhook

{
  "status": "success",
  "message": "Webhook creation successfully completed",
  "webhook": {
    "id": "w_lLwuqJ99YLSdXcwo",
    "user_id": 1,
    "url": "https://votes.test/api/test",
    "secret_key": "wh_VK4XvzZND9OFGn786Ka2FG2B7ix4O",
    "description": null
  },
  "events": [
    {
      "id": 2,
      "event": "user.vote"
    }
  ]
}

Dernière mise à jour