Skip to content

Instantly share code, notes, and snippets.

Created April 26, 2016 13:58
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/86a2290897464c76d614466d1c30b7fa to your computer and use it in GitHub Desktop.
Save anonymous/86a2290897464c76d614466d1c30b7fa to your computer and use it in GitHub Desktop.

Connecter un chan entre deux instances RocketChat:


prérequis sur chaques instances:

  • un chan à connecter.
  • un compte utilisateur qui servira de bot (un seul bot peut servir pour tous les scripts)

##instance 1:

Incoming Webhook:

  • Administration -> Intégration -> Nouvelle intégration -> incoming webhook:

    • canal: le nom du canal à partager sur cette instance (précédé de #)

    • publié en tant que: nom du bot de cette instance

    • Script activé: Oui

    • Script:

        class Script {
        
          process_incoming_request({ request }) {
      
            // console is a global helper to improve debug
            console.log(request);
        
            return {
              content: {
                username: request.content.user_name,
                icon_url: '/avatar/' + request.content.user_name + '.jpg' ,
                text: request.content.text
               }
            };
        
             return {
               error: {
                 success: false,
                 message: 'Error example'
               }
             };
          }
        }
      
  • Sauvegarder les modifications

  • la sauvegarde entraine la génération de l'URL, à garder de coté pour la suite.

##instance 2:

outgoing webhook:

  • Administration -> Intégration -> Nouvelle intégration -> outgoing webhook:
  • canal: le nom du canal à partager sur cette instance (précédé de #)

  • URLs: L'URL du webhook entrant (incoming) de l'étape précédente.

  • publié en tant que: nom du bot de cette instance

  • Script activé: Oui

  • Script:
    Attention pensez à remplacer "nomdubot" par le pseudo du bot dans le script

      class Script {
        prepare_outgoing_request({ request }) {
          //console.log request
          let match;
      
          // Change the URL and method of the request
          match = request.data.user_name.match(/nom_du_bot/);
          if (match) {
            return {
              // url: request.url + '&parse_mode=Markdown' + '&text=' + '*' + request.data.user_name+ '*: _' + request.data.text + '_',
              //no get method so nothing will happen avoid looping of messages
            }; 
          } else {
            return {
            	url: request.url,
              content: JSON.stringify({"user_name":request.data.user_name,"text":request.data.text}),
              method:'POST'
            }; 
          }
        }
      }
    

Après cette étape tout les messages de posté dans le chan de l'instance 2 doivent arrivé dans celui de l'instance 1,
Ensuite on fait la même chose dans l'autre sens.

##instance 2:

Incoming Webhook:

cf Instance 1 incoming

##instance 1:

Outgoing Webhook:

cf Instance 2 outgoing

La communication est maintenant opérationelle dans les deux sens.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment