Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

page_type sample
description This sample shows a feature where user can schedule a task from messaging extension action and get a reminder card at a scheduled time.
products
office-teams
office
office-365
languages
csharp
extensions
contentType createdDate
samples
11/24/2021 12:00:00 AM
urlFragment officedev-microsoft-teams-samples-msgext-message-reminder-csharp

Message reminder with messaging extension action

This sample shows a feature where user can schedule a task from messaging extension action and get a reminder card at a scheduled time.

Interaction with app

Select message

Prerequisites

  • .NET Core SDK version 6.0

    determine dotnet version

    dotnet --version
  • Ngrok (For local environment testing) Latest (any other tunneling software can also be used)

  • Teams Microsoft Teams is installed and you have an account

Setup

  1. Register a new application in the Azure Active Directory – App Registrations portal.

  2. Setup for Bot

  • Also, register a bot with Azure Bot Service, following the instructions here.

  • Ensure that you've enabled the Teams Channel

  • While registering the bot, use https://<your_ngrok_url>/api/messages as the messaging endpoint.

    NOTE: When you create your app registration, you will create an App ID and App password - make sure you keep these for later.

  1. Setup NGROK
  • Run ngrok - point to port 3978
# ngrok http -host-header=rewrite 3978
  1. Setup for code
  • Clone the repository

    git clone https://github.com/OfficeDev/Microsoft-Teams-Samples.git

Modify the appsettings.json and fill in the following details:

  • {{Microsoft-App-Id}} - Generated from Step 1 is the application app id

  • {{ Microsoft-App-Password}} - Generated from Step 1, also referred to as Client secret

  • {{ Application Base Url }} - Your application's base url. E.g. https://12345.ngrok.io if you are using ngrok.

  • From a terminal, navigate to samples/msgext-message-reminder/csharp

    # run the bot
    dotnet run

Launch Visual Studio

  • File -> Open -> Project/Solution
  • Navigate to folder where repository is cloned then samples/msgext-message-reminder/csharp/MessagingExtensionReminder.sln
  • Press F5 to run the project
  1. Setup Manifest for Teams
  • This step is specific to Teams.

    • Edit the manifest.json contained in the ./AppPackage folder to replace your Microsoft App Id (that was created when you registered your app registration earlier) everywhere you see the place holder string {{Microsoft-App-Id}} (depending on the scenario the Microsoft App Id may occur multiple times in the manifest.json)
    • Edit the manifest.json for validDomains and replace {{domain-name}} with base Url of your domain. E.g. if you are using ngrok it would be https://1234.ngrok.io then your domain-name will be 1234.ngrok.io.
    • Zip up the contents of the AppPackage folder to create a manifest.zip (Make sure that zip file does not contains any subfolder otherwise you will get error while uploading your .zip package)
  • Upload the manifest.zip to Teams (in the Apps view click "Upload a custom app")

    • Go to Microsoft Teams. From the lower left corner, select Apps
    • From the lower left corner, choose Upload a custom App
    • Go to your project directory, the ./AppPackage folder, select the zip folder, and choose Open.
    • Select Add in the pop-up dialog box. Your app is uploaded to Teams.

Running the sample

Personal scope scenario

  • Select ... over message to get action create-reminder for scheduling task.

Select message

  • Task module to add task details.

Task Details

  • Reminder card of task at scheduled date and time.

Task reminder

Team scope scenario

  • Select ... over message to get action create-reminder for scheduling task.

Team message action

  • Task module to add task details.

Team Task Details

  • Reminder card of task at scheduled date and time.

 TeamTask reminder

Deploy the bot to Azure

To learn more about deploying a bot to Azure, see Deploy your bot to Azure for a complete list of deployment instructions.

Further reading