Ejemplo n.º 1
0
 async def on_teams_messaging_extension_submit_action(
     self,
     turn_context: TurnContext,
     action: MessagingExtensionAction,
 ) -> MessagingExtensionActionResponse:
     # This method is to handle the 'Close' button on the confirmation Task Module after the user signs out.
     return MessagingExtensionActionResponse(task=None)
    async def on_teams_messaging_extension_submit_action(  # pylint: disable=unused-argument
            self, turn_context: TurnContext, action: MessagingExtensionAction
    ) -> MessagingExtensionActionResponse:

        if action.command_id == "createCard":
            return await self._create_card_command(turn_context, action)
        if action.command_id == "shareMessage":
            return await self._share_message_command(turn_context, action)
        if action.command_id == "createWithPreview":
            return await self._create_with_preview(turn_context, action)

        # preview_card = create_adaptive_card_preview(
        #     user_text=action.data["Question"],
        #     is_multi_select=action.data["MultiSelect"],
        #     option1=action.data["Option1"],
        #     option2=action.data["Option2"],
        #     option3=action.data["Option3"],
        # )

        # extension_result = MessagingExtensionResult(
        #     type="botMessagePreview",
        #     activity_preview=MessageFactory.attachment(preview_card),
        # )
        return MessagingExtensionActionResponse(
            compose_extension=extension_result)
 async def on_teams_messaging_extension_fetch_task(
     self, turn_context: TurnContext, action: MessagingExtensionAction
 ) -> MessagingExtensionActionResponse:
     card = create_adaptive_card_editor()
     task_info = TaskModuleTaskInfo(
         card=card, height=450, title="Task Module Fetch Example", width=500
     )
     continue_response = TaskModuleContinueResponse(type="continue", value=task_info)
     return MessagingExtensionActionResponse(task=continue_response)
    async def on_teams_messaging_extension_submit_action(  # pylint: disable=unused-argument
        self, turn_context: TurnContext, action: MessagingExtensionAction
    ) -> MessagingExtensionActionResponse:
        preview_card = create_adaptive_card_preview(
            user_text=action.data["Question"],
            is_multi_select=action.data["MultiSelect"],
            option1=action.data["Option1"],
            option2=action.data["Option2"],
            option3=action.data["Option3"],
        )

        extension_result = MessagingExtensionResult(
            type="botMessagePreview",
            activity_preview=MessageFactory.attachment(preview_card),
        )
        return MessagingExtensionActionResponse(compose_extension=extension_result)
    async def _create_with_preview(self, turn_context: TurnContext,
                                   action: MessagingExtensionAction):
        preview_card = create_adaptive_card_preview(
            user_text=action.data["Question"],
            is_multi_select=action.data["MultiSelect"],
            option1=action.data["Option1"],
            option2=action.data["Option2"],
            option3=action.data["Option3"],
        )

        extension_result = MessagingExtensionResult(
            type="botMessagePreview",
            activity_preview=MessageFactory.attachment(preview_card),
        )
        return MessagingExtensionActionResponse(
            compose_extension=extension_result)
 async def on_teams_messaging_extension_bot_message_preview_edit(  # pylint: disable=unused-argument
     self, turn_context: TurnContext, action: MessagingExtensionAction
 ) -> MessagingExtensionActionResponse:
     activity_preview = action.bot_activity_preview[0]
     content = activity_preview.attachments[0].content
     data = self._get_example_data(content)
     card = create_adaptive_card_editor(
         data.question,
         data.is_multi_select,
         data.option1,
         data.option2,
         data.option3,
     )
     task_info = TaskModuleTaskInfo(
         card=card, height=450, title="Task Module Fetch Example", width=500
     )
     continue_response = TaskModuleContinueResponse(type="continue", value=task_info)
     return MessagingExtensionActionResponse(task=continue_response)
Ejemplo n.º 7
0
    async def create_card_command(
        self, turn_context: TurnContext, action: MessagingExtensionAction
    ) -> MessagingExtensionActionResponse:
        title = action.data["title"]
        subTitle = action.data["subTitle"]
        text = action.data["text"]

        card = HeroCard(title=title, subtitle=subTitle, text=text)
        cardAttachment = CardFactory.hero_card(card)
        attachment = MessagingExtensionAttachment(
            content=card,
            content_type=CardFactory.content_types.hero_card,
            preview=cardAttachment,
        )
        attachments = [attachment]

        extension_result = MessagingExtensionResult(
            attachment_layout="list", type="result", attachments=attachments
        )
        return MessagingExtensionActionResponse(compose_extension=extension_result)
    async def share_message_command(
            self, turn_context: TurnContext, action: MessagingExtensionAction
    ) -> MessagingExtensionActionResponse:
        # The user has chosen to share a message by choosing the 'Share Message' context menu command.

        # TODO: .user is None
        title = "Shared Message"  # f'{action.message_payload.from_property.user.display_name} orignally sent this message:'
        text = action.message_payload.body.content
        card = HeroCard(title=title, text=text)

        if not action.message_payload.attachments is None:
            # This sample does not add the MessagePayload Attachments.  This is left as an
            #  exercise for the user.
            card.subtitle = (
                f"({len(action.message_payload.attachments)} Attachments not included)"
            )

        # This Messaging Extension example allows the user to check a box to include an image with the
        # shared message.  This demonstrates sending custom parameters along with the message payload.
        include_image = action.data["includeImage"]
        if include_image == "true":
            image = CardImage(
                url=
                "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQtB3AwMUeNoq4gUBGe6Ocj8kyh3bXa9ZbV7u1fVKQoyKFHdkqU"
            )
            card.images = [image]

        cardAttachment = CardFactory.hero_card(card)
        attachment = MessagingExtensionAttachment(
            content=card,
            content_type=CardFactory.content_types.hero_card,
            preview=cardAttachment,
        )
        attachments = [attachment]

        extension_result = MessagingExtensionResult(attachment_layout="list",
                                                    type="result",
                                                    attachments=attachments)
        return MessagingExtensionActionResponse(
            compose_extension=extension_result)
Ejemplo n.º 9
0
    async def on_teams_messaging_extension_fetch_task(
        self,
        turn_context: TurnContext,
        action: MessagingExtensionAction,
    ) -> MessagingExtensionActionResponse:
        if action.command_id == "SignOutCommand":
            await turn_context.adapter.sign_out_user(
                turn_context,
                self.connection_name,
                turn_context.activity.from_property.id,
            )
            card = CardFactory.adaptive_card({
                "actions": [{
                    "type": "Action.Submit",
                    "title": "Close",
                }],
                "body": [
                    {
                        "text": "You have been signed out.",
                        "type": "TextBlock",
                        "weight": "bolder",
                    },
                ],
                "type":
                "AdaptiveCard",
                "version":
                "1.0",
            })

            task_info = TaskModuleTaskInfo(card=card,
                                           height=200,
                                           title="Adaptive Card Example",
                                           width=400)
            continue_response = TaskModuleContinueResponse(type="continue",
                                                           value=task_info)
            return MessagingExtensionActionResponse(task=continue_response)

        return None