Version actuelle |
Votre texte |
Ligne 41 : |
Ligne 41 : |
| * [https://chat.nuitdebout.fr/direct/pierrelalu.web.paris pierrelalu.web.paris] | | * [https://chat.nuitdebout.fr/direct/pierrelalu.web.paris pierrelalu.web.paris] |
| | | |
− |
| |
− | == Connecter un chan entre deux instances RocketChat:<br> ==
| |
− |
| |
− |
| |
− | -----
| |
− |
| |
− | ==== 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: ====
| |
− |
| |
− | <ul>
| |
− | <li><p>Administration -> Intégration -> Nouvelle intégration -> incoming webhook:</p>
| |
− | <ul>
| |
− | <li>canal: le nom du canal à partager sur cette instance (précédé de #)</li>
| |
− | <li>publié en tant que: nom du bot de cette instance</li>
| |
− | <li>Script activé: Oui</li>
| |
− | <li><p>Script:</p>
| |
− | <pre>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'
| |
− | }
| |
− | };
| |
− | }
| |
− | }</pre></li></ul>
| |
− | </li>
| |
− | <li><p>Sauvegarder les modifications</p></li>
| |
− | <li><p>la sauvegarde entraine la génération de l’URL, à garder de coté pour la suite.</p></li></ul>
| |
− |
| |
− | === instance 2: ===
| |
− |
| |
− | ==== outgoing webhook: ====
| |
− |
| |
− | <ul>
| |
− | <li>Administration -> Intégration -> Nouvelle intégration -> outgoing webhook:</li>
| |
− | <li>canal: le nom du canal à partager sur cette instance (précédé de #)</li>
| |
− | <li>URLs: L’URL du webhook entrant (incoming) de l’étape précédente.</li>
| |
− | <li>publié en tant que: nom du bot de cette instance</li>
| |
− | <li>Script activé: Oui</li>
| |
− | <li><p>Script:<br />
| |
− | '''Attention pensez à remplacer “nomdubot” par le pseudo du bot dans le script'''</p>
| |
− | <pre>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'
| |
− | };
| |
− | }
| |
− | }
| |
− | }</pre></li></ul>
| |
− |
| |
− | Après cette étape tout les messages de posté dans le chan de l’instance 2 doivent arrivé dans celui de l’instance 1,<br />
| |
− | 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.
| |
| | | |
| Les échanges sur la configuration du salon ont lieu [https://chat.nuitdebout.fr/channel/chat sur ce chat] | | Les échanges sur la configuration du salon ont lieu [https://chat.nuitdebout.fr/channel/chat sur ce chat] |