Introduction
- Ce guide suppose que vous avez un bot approuvé sur top.gg et que vous utilisez Node.js ou Python pour votre projet.
- Ensuite, vous devrez créer un compte sur Square Cloud, ce que vous pouvez faire depuis la page d’inscription. Vous pouvez utiliser votre e-mail pour créer un compte.
- Enfin, vous devez disposer d’un plan actif sur votre compte. Comparez les plans disponibles et choisissez-en un selon vos besoins.
Configuration de l’environnement
- Node.js
- Python
- Avant de commencer, assurez-vous d’avoir Node.js et npm installés sur votre système. Si ce n’est pas encore le cas, vous pouvez les télécharger depuis le site officiel de Node.js.
- Démarrez un nouveau projet Node.js et activez la syntaxe
importavec les commandes suivantes :
- Installez Express :
Configuration du projet
1. Récupérez le secret de votre webhook :- Choisissez le sous-domaine que votre application utilisera sur Square Cloud (le champ
SUBDOMAINde votre fichier de configuration), par exemplemysite. L’URL de votre webhook sera alorshttps://mysite.squareweb.app/topgg. - Sur Top.gg, ouvrez le tableau de bord de votre projet et allez dans Webhooks.
- Collez l’URL du webhook et enregistrez. Top.gg génère alors un secret de webhook qui commence par
whs_: copiez-le et gardez-le privé. Votre code le lit depuis la variable d’environnementTOPGG_WEBHOOK_SECRET.
x-topgg-signature, au format t=<timestamp>,v1=<signature>, où la signature est un HMAC SHA-256 de <timestamp>.<raw body> calculé avec votre secret. Le code ci-dessous la recalcule et rejette toute requête qui ne correspond pas, afin que personne d’autre ne puisse envoyer de faux votes à votre URL. Consultez la documentation des webhooks Top.gg pour plus de détails.Authorization avec un payload différent, n’est pas couvert ici.- Node.js
- Python
crypto intégré à Node, aucun paquet Top.gg n’est donc nécessaire. La classe Webhook de @top-gg/sdk 4.0.0 n’est pas utilisée : lors de nos tests, son écouteur répondait aux livraisons valides par une erreur de timeout, ce qui pousse Top.gg à les renvoyer.Créer le fichier de configuration squarecloud
Créez un fichiersquarecloud.app dans le dossier de votre projet. Définissez SUBDOMAIN sur le sous-domaine choisi à l’étape 1 :
SUBDOMAIN publie l’écouteur sur https://mysite.squareweb.app, et les applications web nécessitent au moins MEMORY=512. Le code écoute sur le port indiqué dans la variable d’environnement PORT, que Square Cloud définit à 80, et sur l’hôte 0.0.0.0.
À découvrir : comment créer le fichier de configuration pour Square Cloud.
Envoyer votre application sur Square Cloud
Après avoir suivi toutes les étapes, le dossier de votre projet doit contenir votre code, son fichier de dépendances (package.json ou requirements.txt) et le fichier de configuration. Pour téléverser depuis le tableau de bord, placez-les dans un fichier .zip.
Si votre application est un projet Node.js, consultez notre article sur Node.js.
Si votre application est un projet Python, consultez notre article sur Python.
Via le tableau de bord
Accéder à la page d'upload
Configurer votre environnement
Si vous téléversez un projet web, veillez à sélectionner « Publication Web » et à définir un sous-domaine pour votre projet.
Déployer votre projet
Une fois le déploiement effectué, vous pouvez suivre l’état et les logs de votre projet depuis le tableau de bord.

Confirmez que votre application est en ligne
Si vous avez déployé un site web ou une API, ouvrez
https://<votre-sous-domaine>.squareweb.app dans votre navigateur, vous devriez voir votre application répondre. Si vous avez déployé un bot, envoyez-lui une commande pour confirmer qu’il est en ligne.
Via la CLI
Pour utiliser cette méthode, votre projet a besoin d’un fichier de configuration nommésquarecloud.app à sa racine. Il indique à Square Cloud comment exécuter votre application.
Guide du fichier de configuration
squarecloud.app qui définit l’environnement de votre application.Installer la CLI
Se connecter
Téléverser votre projet
squarecloud.ignore, puis l’envoie :--file :Confirmez que votre application est en ligne
https://<votre-sous-domaine>.squareweb.app dans votre navigateur, vous devriez voir votre application répondre. Si vous avez déployé un bot, envoyez-lui une commande pour confirmer qu’il est en ligne.
Définir le secret du webhook
Ajoutez votre secretwhs_ comme variable d’environnement TOPGG_WEBHOOK_SECRET de votre application, de l’une de ces façons :
- Tableau de bord : sur la page d’envoi, ouvrez Configuration avancée et ajoutez la variable avant de déployer. Pour une application déjà déployée, ajoutez-la sur sa page Variables d’environnement.
- CLI : depuis le dossier de votre projet, définissez-la avec
squarecloud app env setet redémarrez l’application :
401 Unauthorized. Consultez Variables d’environnement pour les autres façons de les gérer.
Lancer les tests
Si vous avez tout fait correctement, ouvrezhttps://mysite.squareweb.app/topgg dans votre navigateur (remplacez mysite par votre sous-domaine). Si « Cannot GET /topgg » (Node.js) ou « Method Not Allowed » (Python) s’affiche, tout est correct : la route n’accepte que les requêtes POST envoyées par Top.gg.
-
Pour le code JavaScript que nous avons créé avec
app.post("/topgg", ...), la route qui recevra les votes est « /topgg ». Donc, si votre site estmysite.squareweb.app, l’URL du webhook esthttps://mysite.squareweb.app/topgg. -
Pour le code Python que nous avons créé avec
@app.route("/topgg", methods=["POST"]), la route qui recevra les votes est également « /topgg ». Ainsi, l’URL du webhook est la même :https://mysite.squareweb.app/topgg.
console.log ou print devrait apparaître dans les logs.

Dépannage
Domaine personnalisé
mysite.com) au lieu de l’URL par défaut mysite.squareweb.app, vous avez besoin du plan Standard ou supérieur. L’URL par défaut provient du champ SUBDOMAIN du fichier de configuration. Pour connecter votre domaine, suivez comment configurer votre propre domaine.Prérequis minimum en RAM
Impossible de trouver ce site.
Le site a mis trop de temps à répondre…
80) et HOST (0.0.0.0) dans votre application : lisez-les dans votre code au lieu de coder en dur d’autres valeurs. Un serveur qui n’écoute que sur localhost ou 127.0.0.1 ne reçoit jamais de requêtes.
