Showing posts with label MicrosoftTeams. Show all posts
Showing posts with label MicrosoftTeams. Show all posts

Wednesday 13 May 2020

Provision Private Channels on Microsoft Teams with Tabs

Let us understand how to auto-provision a private channel on Microsoft Teams, along with necessary tabs added on the private channel in an automated way.

Article: Private channel provisioning along with necessary tabs could automated with the help of Power Automate flow and Microsoft Graph API. Microsoft Graph API provides us the beta/major version of the graph endpoints to achieve the provisioning solution. Power Automate flow is configured with necessary HTTP requests for provisioning and automate the process.

The solution requires two major steps.
  • Creating Private Channel
  • Adding Tabs


Create Private Channel on Microsoft Teams 


At the time of writing this article, private channel creation endpoint is not available with major version (v1.0). Major version of graph endpoint, provides option to create a channel, but not private channels.
POST https://graph.microsoft.com/v1.0/teams/{id}/channels
Content-type: application/json
{ "displayName": "Architecture Discussion", "description": "This channel is where we debate all future architecture plans" } 

The beta version of graph endpoint, provides option to create a private channel. The endpoint requires a payload to define the nature of channel and to add members with their roles. The following snapshot from Power Automate shows the way to create a private channel, with a member and their role.
Create a private channel
Create a private channel

Saturday 21 March 2020

Azure Web App – Integrate Microsoft Teams Channel and show Conversation highlights with MS Graph API endpoints

This article helps you out integrating the Microsoft Teams channel data into custom web applications. Assume an use case, web application has channel mapping, where the app interface needs to show the highlights of latest conversations from respective team channels.

Currently the graph endpoint which exposes the channel messages is beta and available as protected endpoints.

Note: Microsoft Team restricts more sensitive data, and integrate the endpoints if there is a need. Please read out the following notes for the integration guidance.
  • This article little focuses on information about integrating protected APIs. As of today, Microsoft has restricted integrating some of their beta APIs. The protected endpoint list is shown here. https://docs.microsoft.com/en-us/graph/teams-protected-apis
  • To enable the protected APIs for integration, you would need to reach out to Microsoft team for integrations. The request could be submitted through this form. https://aka.ms/teamsgraph/requestaccess
  • The request is generally reviewed, approved and enabled over a timeline mentioned in the article. 
  • The request form needs to be filled with tenant, Azure AD app (explained below) and other details. 
  • Once the request is approved, you will get a notification over email confirming the API enablement within specific timeline. 


Azure AD App Registration and Configuration


Before submitting the request, an Azure AD app needs to be registered on the tenant. The use case requires to get the channel conversations. So, the following snapshot shows the configured and granted permissions. Apart from this configuration, the other key parameters needs to be configured.
  • Enabling oAuth implicit flow. 
  • Enabling implicit tokens 
  • And providing redirect APIs. 
API permissions required for integration
API permissions required for integration


Sunday 8 March 2020

Search for Documents from Microsoft Teams Channel Conversations

This article illustrates a sample for finding the documents available on a team, with keyword search from channel conversations. This is achieved with the help of outgoing webhook service, where documents from Team are being pulled with the help of Microsoft Graph API.
#Azure #GraphAPI #MicrosoftTeams #Office365

The following screenshot shows the list of documents retrieved sending the keyword via the channel conversation.
Finding documents from channel using outgoing webhooks
Finding documents from channel using outgoing webhooks

Tuesday 18 February 2020

Retrieve Office365 People data on MS Team Channels via Outgoing Webhook and Azure App Service

Here, let us see how office 365 people information can be integrated into Microsoft Teams, with the help of outgoing webhooks on Teams. The use case is to pull the people present at a location, on posting a message to a service from Microsoft Teams.  

This could be easily achieved with the help of outgoing webhook feature under teams. The webhook has to interact with a service to get data processed based on data posted. 

Why Outgoing Webhook?: The outgoing webhook is used here instead of incoming webhook, since the data needs to be retrieved only when it is required.

No BOT Framework, only Azure App Service: This article helps us to understand creating outgoing webhook services for Microsoft Teams, without creating BOT service/app. Here the intent of service is clear, so we are not leveraging the BOT framework, instead hosting a simple service with Azure web app. From azure web app, the people data is being pulled from Azure AD with the help of Microsoft Graph API.


Create an outgoing webhook for a Microsoft Team 


Locate a team under Microsoft Teams, and navigate to manage team. Under App, in the bottom right corner, you will find an outgoing webhook link. From the link, create a webhook.  

Outgoing Webhook creation on Teams
Outgoing Webhook creation on Teams

Sunday 2 February 2020

Setting up Microsoft Teams Shifts Schedule Reminders

This article will help us to setup reminders for Shifts on Microsoft Teams using Power Automate. This will help to understand how shift reminders are triggered to shift owners a day before the shift schedules, as gentle reminders.

Before getting into implementation, we will see short introduction of Shifts app. Recently Microsoft has retired the Staffhub service, and Shift app is available as replacement and is available as an app on Microsoft Teams.


Microsoft Team's Shifts App


Shifts App, as quoted on Microsoft documentations: The Shifts app in Microsoft Teams keeps Firstline Workers connected and in sync. It's built mobile first for fast and effective time management and communication for teams.

Shifts app lets users on Microsoft Teams to create necessary shift schedules, and assign/share the schedules with teams. Once the schedule is created and shared on Teams, users will be able to view the schedules on their Teams login.
  • Currently, notifications are not working as expected. In my case, after sharing the schedule with a team, the notifications were not triggered to teams users. 
  • The shift schedule is not currently synced up with calendars. 
Hope the above drawbacks would be addressed in the near future by Microsoft product team.

This article helps us to understand a reminder notification requirement, which I came across recently. Let us look at how to trigger reminder notifications to respective schedule owners a day before the shift schedule.

Create a necessary shift schedules and share it with teams on Microsoft Teams interface.
Microsoft Team Shifts App - Sample Shift Schedule
Microsoft Team Shifts App - Sample Shift Schedule

Saturday 4 January 2020

Ask Alexa to search for a Microsoft Team – Integration of Amazon Alexa Skill with MS Team using Azure Functions and Graph API

The article helps understand how to integrate your Amazon Alexa with Microsoft team using Azure functions and Microsoft Graph API. The use case demonstrated here is finding a team on Microsoft Teams via Alexa. You can implement plenty of use cases.

This requires the following components.
  • Amazon's Alexa developer console for testing, and Alexa device for real demo.
  • Azure Subscription - Azure function to host request/response code for Alexa device, which integrates with Microsoft Graph API
  • Office 365 tenant - with Microsoft Teams enabled. 


Configure Skills on Alexa Console


From the Amazon Alexa console (https://developer.amazon.com/alexa/console/ask), create a custom skill. The following steps has to be created on the console.
  • Create invocation utterance - This is the skill invocation keywords on Alexa. In my case, invocation would be “team finder”
Invocation your skill by saying team finder
Invocation your skill by saying team finder

Saturday 21 December 2019

Microsoft Teams List (Part II) – Building End-user interface on PowerApps to identify Membership Information

Let us see how to create an interface on Power Apps platform, listing down all the teams under office 365 Microsoft teams tenant, also enable options to join the team if user is already not a member.

In the previous article, we have seen the ways to identify the user membership information via Microsoft Graph API. Using these Graph API and information, we will build the user interface functionality.

Here, a simple app is built for end-users on Power Apps platform, which in turn connects to Microsoft Graph API data explained in the previous article. The below snapshot shows the end result.
Microsoft Teams List - Options showing if user is member of /or join team button
Microsoft Teams List - Options showing if user is member of /or join team button 

Microsoft Teams List (Part I) – Exploring MS Graph API to find the Teams membership information on Office 365 Groups

In the Microsoft teams, there is a way to find public teams, and also private teams if discovery option is enabled on the tenant wide settings.

But is it possible to see all teams irrespective of discovery option on the Microsoft teams tenant? Answer is yes, there is a way for administrators with Microsoft graph API, and building some app interfaces showing the teams list with the help of graph API.

To create the necessary interface showing the teams list,
  • In this article, let us see how to identify the teams membership information with graph APIs. Let us see how to extract all teams list under a tenant using Office 365 groups data, and to extract my teams list. This data will help us drive to build an interface to list down teams and enable options to join a team if user is not a member.
  • In the next article, let us create a simple app on Power Apps to show users about the teams list, with options showing membership and join button if user is not member of the team. - http://www.techwithnakkeeran.com/2019/12/microsoft-teams-list-part-ii-building.html


Use MS Graph API to user relationship with a Team 


Let us quickly see how to find if you want to find the your team membership via Microsoft graph API.
  • Login to Microsoft graph explorer with your administrator rights. https://developer.microsoft.com/en-us/graph/graph-explorer 
  • With major version of graph API (v1.0), you will be able to identify the groups which has teams association. Note this lists down all Office 365 groups without teams filter, you will have to manually find the groups which has only teams association, using resourceProvisioningOptions parameter. https://graph.microsoft.com/v1.0/groups?$select=displayName,id,resourceProvisioningOptions 
List all Office 365 Groups without any filter - showing Group Name and team associate property
List all Office 365 Groups without any filter - showing Group Name and team associate property

Friday 6 December 2019

Identifying Microsoft Teams and the Classic SharePoint Team Site associations with Office 365 Groups: View on PowerApps

Let us see how to create a simple dashboard to identify if Office 365 group has been associated with Microsoft Teams and SharePoint modern team sites.

Office 365 Groups are created with various aspects. Microsoft Teams and Modern SharePoint team sites are created with/from Office 365 groups. Office 365 group is an object on Azure active directory, which will basically a collection of users.

PLEASE NOTE: Every Team created on Microsoft Teams, should have Team Site created and associated. This article only demonstrates the group and teams association, or group and sites association. The site which is not created manually/separately using group is not considered as association here, in this requirement/scenario.

To get the simple view for business users, Power Apps could be leveraged with custom connectors. There are other ways to achieve the same functionality like staging data on SharePoint with power automate and then representing the information on client apps, but I use the simple and straight forward to achieve the requirement.


Microsoft Graph API - Identify group associations


Office 365 groups data is exposed via Microsoft Graph APIs. The key parameters to be leveraged in the Graph API for this use case will be,
  • Group display Name 
  • ResourceProvisioningOptions - if MS team is created for the group, this property will have a value “Team” 
  • CreationOptions – If modern team site has been created with the group, this property will have a value “SPSiteLanguage:1033” 

The following snapshot shows the graph API response showing if the group has Microsoft Teams and SharePoint modern team site associations.
MS Graph API - representing the associations
MS Graph API - representing the associations