Atividades proativas

O fluxo de mensagem proativo do BotBuilder requer o armazenamento de uma referência de conversa. No SDK do Teams, expomos um send método na App classe, quase idêntico ao passado para nossos manipuladores de atividades por meio de nosso contexto. Este método aceita um conversation_id, portanto, armazenar apenas isso é suficiente!

O fluxo de mensagem proativo do BotBuilder requer o armazenamento de uma referência de conversa. No SDK do Teams, expomos um send método na App classe, quase idêntico ao passado para nossos manipuladores de atividades por meio de nosso contexto. Este método aceita um conversationId, portanto, armazenar apenas isso é suficiente!

from botbuilder.core import TurnContext
from botbuilder.integration.aiohttp import CloudAdapter, ConfigurationBotFrameworkAuthentication
from botbuilder.schema import ChannelAccount, ConversationAccount, ConversationReference

adapter = CloudAdapter(ConfigurationBotFrameworkAuthentication(config))

conversation_reference = ConversationReference(
    service_url="...",
    bot=ChannelAccount(...),
    channel_id="msteams",
    conversation=ConversationAccount(...),
    user=ChannelAccount(...)
)

async def send_proactive(turn_context: TurnContext):
    await turn_context.send_activity("proactive hello")

await adapter.continue_conversation(
    conversation_reference,
    send_proactive
)
import {
  CloudAdapter,
  ConfigurationBotFrameworkAuthentication,
  ConversationReference,
} from 'botbuilder';

const auth = new ConfigurationBotFrameworkAuthentication(process.env);
const adapter = new CloudAdapter(auth);

(async () => {
  const conversationReference: ConversationReference = {
    serviceUrl: '...',
    bot: { ... },
    channelId: 'msteams',
    conversation: { ... },
    user: { ... },
  };

  await adapter.continueConversationAsync(process.env.MicrosoftAppId ?? '', conversationReference, async context => {
    await context.sendActivity('proactive hello');
  });
}());