Envoyer des messages proactifs à un canal dans Teams

Envoyer des messages proactifs à un canal dans Teams


Source : Stack Overflow [microsoft-teams],)

D’accord, voici comment j’ai réussi à le faire fonctionner. Je le publie ici pour référence future.

AVERTISSEMENT : Je ne sais toujours pas comment l’utiliser avec botbuilder comme demandé dans ma question initiale, et cette réponse va utiliser ConnectorClient, ce qui est acceptable (pour moi, du moins). En me basant sur les indications de Hilton et un problème GitHub que j’ai vu plus tôt (https://github.com/OfficeDev/BotBuilder-MicrosoftTeams/issues/162#issuecomment-434978847), j’ai finalement réussi. La documentation MS n’est pas très utile, car ils utilisent toujours la variable context qui est disponible lorsque votre Bot répond à un message ou une activité, et ils gardent un enregistrement de ces contextes en interne pendant que le Bot fonctionne. Cependant, si votre Bot est redémarré pour une raison quelconque ou si vous souhaitez stocker vos données dans votre base de données pour une utilisation ultérieure, c’est la voie à suivre.

Voici le code (NodeJS) :

const path = require('path');
const { ConnectorClient, MicrosoftAppCredentials } = require('botframework-connector');

const ENV_FILE = path.join(__dirname, '.env');
require('dotenv').config({ path: ENV_FILE });

const serviceUrl = 'https://smba.trafficmanager.net/emea/';

async function sendToChannel() {
    MicrosoftAppCredentials.trustServiceUrl(serviceUrl);

    var credentials = new MicrosoftAppCredentials(process.env.MicrosoftAppId, process.env.MicrosoftAppPassword);
    var client = new ConnectorClient(credentials, { baseUri: serviceUrl });

    var conversationResponse = await client.conversations.createConversation({
        bot: {
            id: process.env.MicrosoftAppId,
            name: process.env.BotName
        },
        isGroup: true,
        conversationType: "channel",
        channelData: {
            channel: { id: "19:[email protected]" }
        },
        activity: {
            type: 'message',
            text: 'This a message from Bot Connector Client (NodeJS)'
        }
    });

}

sendToChannel();

*(Réponse tronquée)*