Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bot Discord js appelé par un site web

    24 octobre 2020 à 23:47:09

    Bonjour à tous, 

    Je tente actuellement de créer mon premier bot Discord et j'ai pu faire quelque chose d'assez basique comme répondre 'pong' lorsque l'on lance la commande '!ping'. 

    // Load up the discord.js library
    const Discord = require("discord.js");
    
    // This is your client. Some people call it `bot`, some people call it `self`, 
    // some might call it `cootchie`. Either way, when you see `client.something`, or `bot.something`,
    // this is what we're refering to. Your client.
    const client = new Discord.Client();
    
    // Here we load the config.json file that contains our token and our prefix values. 
    const config = require("./config.json");
    // config.token contains the bot's token
    // config.prefix contains the message prefix.
    
    client.on("ready", () => {
      // This event will run if the bot starts, and logs in, successfully.
      console.log(`Bot has started.`);
    });
    
    
    client.on("message", msg => {
      if (msg.content === '!ping') {
        msg.reply('Pong!');
      }
    });
    
    client.login('token');


    Maintenant, l'étape que je cherche à réaliser est plus complexe et je n'ai pas réussi à trouver comment faire après moultes recherches sur des forums, documentations et tutos... 

    J'aimerais pouvoir lier mon bot Discord à un site web ! 

    Pour mieux illustrer cela, disons que notre site web à un formulaire (pour ajouter une paire de chaussure dans une BDD). Lorsque l'on ajoute cette paire de chaussure en base, j'aimerais appeler le bot Discord afin qu'il rédige un message sur un salon afin de prévenir qu'une nouvelle paire de chaussure est disponible !

    Est-ce qu'il est possible d'appeler notre bot depuis un site web et d'y lancer des fonctions à la manière d'une API REST ? Et si oui, avez-vous des exemples/tutos à me conseiller ? 

    En vous remerciant d'avance :D

    -
    Edité par KuroTsubasa 24 octobre 2020 à 23:48:23

    • Partager sur Facebook
    • Partager sur Twitter
      9 novembre 2020 à 12:07:40

      Dernier up avant de laisser tomber
      • Partager sur Facebook
      • Partager sur Twitter
        17 juin 2021 à 13:36:56

        Tu devrai utiliser replit.com pour hébérger ton bot h24 + créé un site web dans la foulé. Je ne sais pas comment faire mais je sais que c'est possible
        • Partager sur Facebook
        • Partager sur Twitter
          18 juillet 2021 à 4:16:32

          Bonjour ton application node en plus d'ouvrir un bot discord peut faire tous ce qu'une application node peut faire (ouvrir un serveur HTTP écouté une requête provenant d'un client et faire une action en retour).

          L'exemple ci-dessous utilise express en tant que router HTTP pour simplifié le code

          Importé et créé le server HTTP avec express:

          // prepare HTTP server
          const express = require('express');
          const app = express();
          const server = require('http').Server(app);

          Comme le serveur HTTP consomme le client Discord il doit attendre que le client et prêt pour démarré:

          client.on("ready", () => {
            // This event will run if the bot starts, and logs in, successfully.
            console.log(`Bot has started.`);
            
            // await bot started for open HTTP server
              server.listen(process.env.NODE_ENV || 3000, () => {
                  console.log(`Server HTTP is open`);
              });
          });

          Puis tu peut ensuite ajouté les routes que tu veut à ton serveur HTTP,

          par exemple cette route envoi un message sur un channel pour chaque requête reçu.

          client.on("ready", () => {
            // This event will run if the bot starts, and logs in, successfully.
            console.log(`Bot has started.`);
            
            // await bot started for open HTTP server
              server.listen(process.env.NODE_ENV || 3000, () => {
                  console.log(`Server HTTP is open`);
              });
          
          	app
                  .get('/send-pong', (request, response) => {
                  client.channels.fetch('<CHANNEL_ID>')
                      .then(channel => {
                      if(channel.isText()) {
                          // is a TextChannel <https://discord.js.org/#/docs/main/stable/class/TextChannel>
          
                          channel.send(`une chausure à été ajouté à la BDD`)
                              .then(() => {
                              response.json({
                                  sucess: true
                              });
                          })
                              .cath(error => {
                              response.json({
                                  success: false,
                                  reason: error.message
                              });
                          })
                      }
                  })
                      .catch(error => {
                      throw new Error(error.message);
                  })
              });
          });




          • Partager sur Facebook
          • Partager sur Twitter

          suggestion de présentation.

          Bot Discord js appelé par un site web

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown