Sending Activities
BotBuilder's pattern for sending activities via its TurnContext is similar to that in Teams SDK,
but one key difference is that sending adaptive cards doesn't require constructing the entire activity yourself.
- Diff
- BotBuilder
- Teams SDK
- from botbuilder.core import ActivityHandler, TurnContext
- from botbuilder.schema import Activity
+ from microsoft.teams.api import MessageActivity, TypingActivityInput
+ from microsoft.teams.apps import ActivityContext, App
- class MyActivityHandler(ActivityHandler):
- async def on_message_activity(self, turn_context: TurnContext):
- await turn_context.send_activity(Activity(type="typing"))
+ @app.on_message
+ async def on_message(context: ActivityContext[MessageActivity]):
+ await context.send(TypingActivityInput())
from botbuilder.core import ActivityHandler, TurnContext
from botbuilder.schema import Activity
class MyActivityHandler(ActivityHandler):
async def on_message_activity(self, turn_context: TurnContext):
await turn_context.send_activity(Activity(type="typing"))
from microsoft.teams.api import MessageActivity, TypingActivityInput
from microsoft.teams.apps import ActivityContext, App
@app.on_message
async def on_message(context: ActivityContext[MessageActivity]):
await context.send(TypingActivityInput())
Strings​
- Diff
- BotBuilder
- Teams SDK
- from botbuilder.core import ActivityHandler, TurnContext
+ from microsoft.teams.api import MessageActivity
+ from microsoft.teams.apps import ActivityContext, App
- class MyActivityHandler(ActivityHandler):
- async def on_message_activity(self, turn_context: TurnContext):
- await turn_context.send_activity("hello world")
+ @app.on_message
+ async def on_message(context: ActivityContext[MessageActivity]):
+ await context.send("hello world")
from botbuilder.core import ActivityHandler, TurnContext
class MyActivityHandler(ActivityHandler):
async def on_message_activity(self, turn_context: TurnContext):
await turn_context.send_activity("hello world")
from microsoft.teams.api import MessageActivity
from microsoft.teams.apps import ActivityContext, App
@app.on_message
async def on_message(context: ActivityContext[MessageActivity]):
await context.send("hello world")
Adaptive Cards​
- Diff
- BotBuilder
- Teams SDK
- from botbuilder.core import ActivityHandler, TurnContext
- from botbuilder.schema import Activity, Attachment
+ from microsoft.teams.api import MessageActivity
+ from microsoft.teams.apps import ActivityContext, App
+ from microsoft.teams.cards import AdaptiveCard, TextBlock
- class MyActivityHandler(ActivityHandler):
- async def on_message_activity(self, turn_context: TurnContext):
- card = {"type": "AdaptiveCard", "version": "1.0", "body": [{"type": "TextBlock", "text": "hello world"}]}
- attachment = Attachment(content_type="application/vnd.microsoft.card.adaptive", content=card)
- activity = Activity(type="message", attachments=[attachment])
- await turn_context.send_activity(activity)
+ @app.on_message
+ async def on_message(context: ActivityContext[MessageActivity]):
+ await context.send(AdaptiveCard().with_body([TextBlock(text="Hello from Adaptive Card!")]))
from botbuilder.core import ActivityHandler, TurnContext
from botbuilder.schema import Activity, Attachment
class MyActivityHandler(ActivityHandler):
async def on_message_activity(self, turn_context: TurnContext):
# hightlight-start
card = {"type": "AdaptiveCard", "version": "1.0", "body": [{"type": "TextBlock", "text": "hello world"}]}
attachment = Attachment(content_type="application/vnd.microsoft.card.adaptive", content=card)
activity = Activity(type="message", attachments=[attachment])
await turn_context.send_activity(activity)
from microsoft.teams.api import MessageActivity
from microsoft.teams.apps import ActivityContext, App
from microsoft.teams.cards import AdaptiveCard, TextBlock
@app.on_message
async def on_message(context: ActivityContext[MessageActivity]):
await context.send(AdaptiveCard(body=[TextBlock(text="Hello from Adaptive Card!")]))
Attachments​
- Diff
- BotBuilder
- Teams SDK
- from botbuilder.core import ActivityHandler, TurnContext
- from botbuilder.schema import Activity, Attachment
+ from microsoft.teams.api import Attachment, MessageActivity, MessageActivityInput
+ from microsoft.teams.apps import ActivityContext, App
- class MyActivityHandler(ActivityHandler):
- async def on_message_activity(self, turn_context: TurnContext):
- attachment = Attachment(...)
- activity = Activity(type="message", attachments=[attachment])
- await turn_context.send_activity(activity)
+ @app.on_message
+ async def on_message(context: ActivityContext[MessageActivity]):
+ attachment = Attachment(...)
+ activity = MessageActivityInput().add_attachments([attachment])
+ await context.send(activity)
from botbuilder.core import ActivityHandler, TurnContext
from botbuilder.schema import Activity, Attachment
class MyActivityHandler(ActivityHandler):
async def on_message_activity(self, turn_context: TurnContext):
attachment = Attachment(...)
activity = Activity(type="message", attachments=[attachment])
await turn_context.send_activity(activity)
from microsoft.teams.api import Attachment, MessageActivity, MessageActivityInput
from microsoft.teams.apps import ActivityContext, App
@app.on_message
async def on_message(context: ActivityContext[MessageActivity]):
attachment = Attachment(...)
activity = MessageActivityInput().add_attachments([attachment])
await context.send(activity)