Edit

Proactive Activities

The BotBuilder proactive message flow requires storing a conversation reference. In Teams SDK, we expose a SendAsync method in the App class, almost identical to the one passed into our activity handlers through our context. This method accepts a conversationId, so storing just that is enough!

The BotBuilder proactive message flow requires storing a conversation reference. In Teams SDK, we expose a send method in the App class, almost identical to the one passed into our activity handlers through our context. This method accepts a conversation_id, so storing just that is enough!

The BotBuilder proactive message flow requires storing a conversation reference. In Teams SDK, we expose a send method in the App class, almost identical to the one passed into our activity handlers through our context. This method accepts a conversationId, so storing just that is enough!

    // highlight-error-start
-   using Microsoft.Bot.Builder;
-   using Microsoft.Bot.Builder.Integration.AspNet.Core;
-   using Microsoft.Bot.Schema;
    // highlight-error-end
    // highlight-success-line
+   using Microsoft.Teams.Apps;

    // highlight-error-start
-   var conversationReference = new ConversationReference
-   {
-       ServiceUrl = "...",
-       Bot = new ChannelAccount { ... },
-       ChannelId = "msteams",
-       Conversation = new ConversationAccount { ... },
-       User = new ChannelAccount { ... }
-   };
-
-   await adapter.ContinueConversationAsync(
-       configuration["MicrosoftAppId"],
-       conversationReference,
-       async (turnContext, cancellationToken) =>
-       {
-           await turnContext.SendActivityAsync("proactive hello", cancellationToken: cancellationToken);
-       },
-       default);
    // highlight-error-end
    // highlight-success-start
+   var teams = app.UseTeams();
+   await teams.Send("your-conversation-id", "proactive hello");
    // highlight-success-end
    # highlight-error-start
-   from botbuilder.core import TurnContext
-   from botbuilder.integration.aiohttp import CloudAdapter, ConfigurationBotFrameworkAuthentication
-   from botbuilder.schema import ChannelAccount, ConversationAccount, ConversationReference
    # highlight-error-end
    # highlight-success-line
+   from microsoft_teams.apps import App

    # highlight-error-start
-   adapter = CloudAdapter(ConfigurationBotFrameworkAuthentication(config))
    # highlight-error-end
    # highlight-success-line
+   app = App()

    # highlight-error-start
-   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,
-   )
    # highlight-error-end
    # highlight-success-start
+   await app.send("your-conversation-id", "proactive hello")
    # highlight-success-end
    // highlight-error-start
-    import {
-      CloudAdapter,
-      ConfigurationBotFrameworkAuthentication,
-      ConversationReference,
-    } from 'botbuilder';
    // highlight-error-end
    // highlight-success-line
+    import { App } from '@microsoft/teams.apps';

    // highlight-error-start
-    const auth = new ConfigurationBotFrameworkAuthentication(process.env);
-    const adapter = new CloudAdapter(auth);
    // highlight-error-end
    // highlight-success-line
+    const app = new App();

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

-      await adapter.continueConversationAsync(process.env.MicrosoftAppId ?? '', conversationReference, async context => {
-        await context.sendActivity('proactive hello');
-      });
      // highlight-error-end
      // highlight-success-start
+      await app.start();
+      await app.send('your-conversation-id', 'proactive hello');
      // highlight-success-end
    }());