Introduction:
We recently implemented Power Apps - Canvas App that was having the integration with Microsoft Teams for Construction & Engineering company based out of Washington, United States. One of the requirements was to get the MS Teams - Channel Messages and display the same in Power Apps.
In this
article, we will explore the Microsoft Teams connector available in Power Apps. The
Teams connector with Power Apps opened lots of possibilities to leverage Teams
capability within the Power Apps. Let's check how to get messages of a specific channel in MS Teams in PowerApps and what other actions are available using the Teams
connector.
Business
Scenario:
Here, first
we will show all available Teams for the current logged in user. When user
clicks on Teams name, this will open all channels for the current Team. Once we
click on the channel name, we will be able to see all the messages from that
channel on the right side section. That’s the end goal we will achieve at the end
of the blog. So, now
let’s get started!
Step 1: Add "MicrosoftTeams" connector in Power Apps from DataSource.
Step 2:
Insert a Blank Gallery and add the below code in the Items of the Gallery.
MicrosoftTeams.GetAllTeams().value
Step 3: Add
a label in the Gallery and show the DisplayName of the Items.
ThisItem.displayName
Hence, you can see it will list all the teams
that you are part of.
Step 4: Now
we require all the channels of the selected Team. For that, insert another
gallery and add this code into the Items of that Gallery.
MicrosoftTeams.GetChannelsForGroup(Gallery1.Selected.id).value
Step 5: Now as we have
both the Items (i.e. Team and Channel), we can get the messages of that
specific selected channel. Insert a
new Gallery and add this code in the Items property of that Gallery.
SortByColumns(MicrosoftTeams.GetMessagesFromChannel(TeamsGallery.Selected.id,
ChannelGallery.Selected.id).value,"createdDateTime",Ascending)
Step 6: Add a HtmlText in
this Gallery and place the below code in the HtmlText
ThisItem.body.content
As the message which is returned is in the form of
HTML, we need to use the HtmlText element for displaying messages. The final output may look something like shown in the below image:
Here are some of the properties which we can show
along with the channel messages:
•
From
•
User
•
ThisItem.from.user.displayName
•
ThisItem.from.user.id
•
Device
•
ThisItem.from.device
•
Attachments
•
ThisItem.attachments
•
Mentions
•
ThisItem.mentions
•
Reactions
•
ThisItem.reactions
•
Dates
•
ThisItem.createdDateTime
•
ThisItem.lastModifiedDateTime
•
Importance
•
ThisItem.importance
As a final outcome, we are able to generate the
screen like below.
References:
Please check the following link to get more information
about different available methods for Microsoft Teams connector for Power Apps.
https://docs.microsoft.com/en-us/connectors/teams/#actions
Conclusion:
This is how
we can use the Microsoft Teams connector for fetching Channel messages in
Power Apps. Happy Power
Apping!