<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Microsoft Teams on Thomy Gölles</title><link>https://thomygoelles.com/tags/microsoft-teams/</link><description>Recent content in Microsoft Teams on Thomy Gölles</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 24 Aug 2025 15:35:37 +0000</lastBuildDate><atom:link href="https://thomygoelles.com/tags/microsoft-teams/index.xml" rel="self" type="application/rss+xml"/><item><title>TeamsFx: Visual Studio project name too long for manifest validation</title><link>https://thomygoelles.com/teamsfx-visual-studio-project-name-too-long-for-manifest-validation/</link><pubDate>Sat, 03 Feb 2024 15:26:38 +0000</pubDate><guid>https://thomygoelles.com/teamsfx-visual-studio-project-name-too-long-for-manifest-validation/</guid><description>&lt;p&gt;When you are working with the Teams Toolkit for Visual Studio and you are using a long project name, you might run into an issue when you want to package your application for deployment. The error message is helpful if you already have some experience with the Teams manifest, but it might be confusing for new developers. The error message we are discussing today is: (×) Error: /name/short must NOT have more than 30 characters&lt;/p&gt;</description></item><item><title>TeamsFx: How to use Microsoft Graph SDK v5 already</title><link>https://thomygoelles.com/teamsfx-graph-sdk-v5/</link><pubDate>Wed, 22 Mar 2023 12:58:35 +0000</pubDate><guid>https://thomygoelles.com/teamsfx-graph-sdk-v5/</guid><description>&lt;p&gt;Looking at the latest release from the Microsoft Graph SDK team an their version 5.0.0 for dotnet three weeks ago, I was wondering how to use it with TeamsFx. I was not able to find any documentation on this topic, so I decided to write this post to share my findings.&lt;/p&gt;
&lt;h2 id="what-is-the-microsoft-graph-sdk-v5-for-dotnet"&gt;What is the Microsoft Graph SDK v5 for dotnet?&lt;/h2&gt;
&lt;p&gt;Using the Microsoft Graph .NET SDK, you can take advantage of a fluent API and models that support retry handling, secure redirects, batching requests, large file management, and many more capabilities. This allows you to focus on what really matters in your Teams application instead of having to worry about the details of the HTTP requests and responses.&lt;/p&gt;</description></item><item><title>TeamsFx - add custom debug profiles</title><link>https://thomygoelles.com/teamsfx-add-custom-debug-profiles/</link><pubDate>Tue, 19 Oct 2021 22:49:50 +0000</pubDate><guid>https://thomygoelles.com/teamsfx-add-custom-debug-profiles/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Today&amp;rsquo;s post is about the need(pain?) of installing your Teams application at the start of every TeamsFx debugging session. If you are new to TeamsFx in Visual Studio please read this &lt;a href="https://thomygoelles.com/getting-started-with-the-microsoft-teams-framework-teamsfx/"&gt;intro&lt;/a&gt; first as for the next parts we assume that you already familiarized yourself with the toolkit and its features.&lt;/p&gt;
&lt;p&gt;There are very good reasons why the Teams Toolkit always starts with the app install screen. At that screen, you can choose where to deploy your app. You can see the current version of your app and all other details of the manifest. But if you are in &amp;ldquo;the zone&amp;rdquo;, you might wish that there is a way to get to your latest changes just a bit quicker. What we will be talking about here won&amp;rsquo;t apply to every possible Teams app, but it works for tabs. To be precise, it works for everything you can create a Teams deep link for.&lt;/p&gt;</description></item><item><title>TeamsFx and .NET Hot Reload</title><link>https://thomygoelles.com/teamsfx-and-net-hot-reload/</link><pubDate>Sat, 02 Oct 2021 23:00:25 +0000</pubDate><guid>https://thomygoelles.com/teamsfx-and-net-hot-reload/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;If you follow the news around .NET 6 and Visual Studio 2022 one of the most time-saving features for developers might be the .NET Hot Reload experience for editing code at runtime. This feature is part of the .NET 6 release and will be available across various project types such as WPF, Windows Forms, .NET MAUI, ASP.NET Core apps code-behind, Console applications, WinUI3 and many others. &lt;a href="https://devblogs.microsoft.com/dotnet/introducing-net-hot-reload/" target="_blank" rel="noopener"&gt;[1]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2021/05/dotnet-Hot-Reload-VS-2019-version-16_11.gif" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Hot Reload example from &lt;a href="https://devblogs.microsoft.com/dotnet/introducing-net-hot-reload/" target="_blank" rel="noopener"&gt;Introducing the .NET Hot Reload experience for editing code at runtime - .NET Blog (microsoft.com)&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Getting started with the Microsoft Teams Framework (TeamsFx)</title><link>https://thomygoelles.com/getting-started-with-the-microsoft-teams-framework-teamsfx/</link><pubDate>Thu, 16 Sep 2021 21:17:41 +0000</pubDate><guid>https://thomygoelles.com/getting-started-with-the-microsoft-teams-framework-teamsfx/</guid><description>&lt;p&gt;A couple of months back, Microsoft started talking about a new way to create applications for Microsoft Teams. Those efforts got different names and with previous and betas and all their different names, it&amp;rsquo;s probably best to quote the current introduction from the actual &lt;a href="https://github.com/OfficeDev/TeamsFx" target="_blank" rel="noopener"&gt;GitHub repo&lt;/a&gt; of the project.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Microsoft Teams Framework is a library encapsulating common functionality and integration patterns (like simplified access to Microsoft Identity) for developers building apps for Microsoft Teams. The Teams Developer Platform offers a collection of solutions for Teams developers:&lt;/em&gt;&lt;/p&gt;</description></item><item><title>How to present at online meetings and events like an Ignite Superstar</title><link>https://thomygoelles.com/present-online-meetings-events-ignite-superstar/</link><pubDate>Mon, 23 Nov 2020 00:17:43 +0000</pubDate><guid>https://thomygoelles.com/present-online-meetings-events-ignite-superstar/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Most of you probably saw some images in a blog post or tuned in for some sessions at Ignite a couple of weeks ago. There was a clear difference in production value compared to what we all saw at Build in May of this year and the Microsoft superstars had made a big step in terms of presenting to a virtual audience.&lt;/p&gt;
&lt;p&gt;If you look at keynotes at those big events with a big audience in a conference room you are pretty sure that you will never be able to recreate this setup at home. With everything being virtual at the moment we can challenge that assumption. We start by a simple question: Can you turn your next Teams meeting in an Ignite-like keynote presentation?&lt;/p&gt;</description></item><item><title>Adoption &amp; Technik - ein neuer Podcast</title><link>https://thomygoelles.com/at365de/</link><pubDate>Tue, 28 Jul 2020 22:39:48 +0000</pubDate><guid>https://thomygoelles.com/at365de/</guid><description>&lt;p&gt;Link zum Podcast: &lt;a href="https://at365.de" target="_blank"&gt;at365.de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Schon im Feber in Bremen, haben &lt;a href="https://twitter.com/AntjeLamartine" target="_blank" rel="noopener"&gt;Antje Lamartine&lt;/a&gt; und ich gemeinsam beschlossen in 2020 das deutschsprachige Podcast-Universum zu erweitern. Zu Beginn war die Idee ein Interview oder ein Video zu machen rund um Collaboration. Genauer gesagt wollten wir uns den ROI, also den Return of Invest, von Collaboaration Projekten ansehen und versuchen eine Definition dafür zu finden.&lt;/p&gt;
&lt;p&gt;Dann kam der März. Und in 2020 veränderte der März bekanntlich für alle alles. Für unsere Podcast-Idee bedeutete die neue globale Situation, dass auch wir in Sachen Bedeutungshoheit unseren Fokus auf das Thema Schule und Fernunterricht mit Microsoft Teams legten.&lt;/p&gt;</description></item><item><title>Adoption &amp; Technik - ein neuer Podcast</title><link>https://thomygoelles.com/deutsch/adoption-technik-ein-neuer-microsoft365-podcast/</link><pubDate>Tue, 28 Jul 2020 22:39:48 +0000</pubDate><guid>https://thomygoelles.com/deutsch/adoption-technik-ein-neuer-microsoft365-podcast/</guid><description>&lt;p&gt;Link zum Podcast: &lt;a href="https://at365.de/" target="_blank" rel="noopener"&gt;at365.de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Schon im Feber in Bremen, haben &lt;a href="https://twitter.com/AntjeLamartine" target="_blank" rel="noopener"&gt;Antje Lamartine&lt;/a&gt; und ich gemeinsam beschlossen in 2020 das deutschsprachige Podcast-Universum zu erweitern. Zu Beginn war die Idee ein Interview oder ein Video zu machen rund um Collaboration. Genauer gesagt wollten wir uns den ROI, also den Return of Invest, von Collaboaration Projekten ansehen und versuchen eine Definition dafür zu finden.&lt;/p&gt;
&lt;p&gt;Dann kam der März. Und in 2020 veränderte der März bekanntlich für alle alles. Für unsere Podcast-Idee bedeutete die neue globale Situation, dass auch wir in Sachen Bedeutungshoheit unseren Fokus auf das Thema Schule und Fernunterricht mit Microsoft Teams legten.&lt;/p&gt;</description></item><item><title>List app usage in Microsoft Teams</title><link>https://thomygoelles.com/list-teams-app-usage/</link><pubDate>Sat, 06 Jun 2020 09:51:29 +0000</pubDate><guid>https://thomygoelles.com/list-teams-app-usage/</guid><description>&lt;p&gt;A couple of weeks ago I saw a thread in the interwebs where someone asked about information on Teams app usage. The question was what apps are used in which teams. I knew from experience with the &lt;a href="https://pnp.github.io/office365-cli/" target="_blank" rel="noopener"&gt;Office365 CLI&lt;/a&gt; and the Teams commands there, that this should be possible to accomplish with the existing commands. So here we go.&lt;/p&gt;
&lt;h2 id="listallteamsappsps1"&gt;ListAllTeamsApps.ps1&lt;/h2&gt;
&lt;p&gt;The first tiny script just iterates through all your teams and lists all apps in each team. Remember: the command will list only those teams you have access to. You can start this with your personal account, but to get all teams you will need an admin account to run those lines.&lt;/p&gt;</description></item><item><title>Create a Microsoft Teams Tab with Blazor</title><link>https://thomygoelles.com/microsoft-teams-tab-with-blazor/</link><pubDate>Thu, 04 Jun 2020 22:08:24 +0000</pubDate><guid>https://thomygoelles.com/microsoft-teams-tab-with-blazor/</guid><description>&lt;p&gt;This post highlights how you can use ASP.NET Blazor Server Side to host your Microsoft Teams tabs. The link to Teams can be achieved by leveraging the Teams JavaScript API, authentication is provided through ADAL.JS. As soon as we get our access token to the Microsoft Graph, we can call endpoints in native C# and visualize the data in Razor components. On both ends in Blazor, UI and data, you can reuse your C# skills or your existing business logic libraries to bring those to Microsoft Teams as a tab.&lt;/p&gt;</description></item><item><title>SharePoint Saturday Helsinki 2019</title><link>https://thomygoelles.com/events/spshel19/</link><pubDate>Tue, 01 Oct 2019 12:27:28 +0000</pubDate><guid>https://thomygoelles.com/events/spshel19/</guid><description>&lt;p&gt;Last weekend Stephan and I had the pleasure to be part of this years SPS Helsinki. Another perfect run event by the local community represented by the two Jussis everyone doing SharePoint knows.&lt;/p&gt;
&lt;p&gt;Here are our slides and a couple of pictures we took during our days in Finnland! A big thank you to all the helping hands organizing this event and to all the friends we had the opportunity to share time with. Yes, this also includes Jasper &amp;amp; Bunny ;)&lt;/p&gt;</description></item><item><title>SelectedTech Webinar 3 - CI/CD with your bot and Azure DevOps</title><link>https://thomygoelles.com/selectedtech/selectedtech-webinar-003/</link><pubDate>Wed, 17 Jul 2019 21:34:35 +0000</pubDate><guid>https://thomygoelles.com/selectedtech/selectedtech-webinar-003/</guid><description>&lt;p&gt;The SelectedTech Webinar 003 about using CI/CD with your bot and Azure DevOps is now available. We recorded the session on July 4th 2019. Check it out and leave a comment or send a tweet or message if you have any questions.&lt;/p&gt;
&lt;p&gt;In this episode Stephan demos how to create a build and release pipeline within Azure DevOps. We discuss the two different configurations for build and release and talk about how to reuse your config for different target systems. The goal is to switch your target environment with Azure DevOps and to be able to deploy your bot to different Azure tenants just by clicking through the release pipeline.&lt;/p&gt;</description></item><item><title>SelectedTech Webinar 2 - QnA Bot Local Development</title><link>https://thomygoelles.com/selectedtech/selectedtech-webinar-002/</link><pubDate>Mon, 08 Jul 2019 17:22:22 +0000</pubDate><guid>https://thomygoelles.com/selectedtech/selectedtech-webinar-002/</guid><description>&lt;p&gt;The SelectedTech Webinar 002 about local QnA bot development and deployment to Microsoft Azure and Microsoft Teams is now available. We recorded the session on July 4th 2019. Check it out and leave a comment or send a tweet or message if you have any questions.&lt;/p&gt;
&lt;p&gt;In this episode we take the QnA bot from webinar 001 and download the code to a local machine. After showing how to run the bot in a local IIS we use ngrok for tunneling access for a Teams deployment. After making a minor code change we republish the bot and make sure everything is still working. The episode ends with Rick asking Stephan about using Azure DevOps for CI/CD which will be our topic for Webinar 003.&lt;/p&gt;</description></item><item><title>Microsoft Teams - weiterführende Links</title><link>https://thomygoelles.com/deutsch/teams-de/</link><pubDate>Mon, 17 Jun 2019 11:35:44 +0000</pubDate><guid>https://thomygoelles.com/deutsch/teams-de/</guid><description>&lt;p&gt;Letzte Woche am 14. Juni durfte ich gemeinsam mit Microsoft Österreich einen Workshop zum Thema Zusammenarbeit und Kommunikation in Teams halten. Dabei ist die Idee entstanden sämtliche Ressourcen wie Blog Artikel oder Präsentationen und Hyperlinks die als Grundlage für den Workshop verwendet wurden irgendwo gesammelt zur Verfügung zu stellen. Über die Zeit entseht hier hoffentlich also eine kleine Übersicht mit Infos zu Microsoft Teams.&lt;/p&gt;
&lt;h2 id="einstieg-in-teams"&gt;Einstieg in Teams&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=s3aQV3T0D6c" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=s3aQV3T0D6c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Teams Intro&lt;/p&gt;</description></item><item><title>SelectedTech Webinar 1 - A No Code QnA Bot In Microsoft Teams</title><link>https://thomygoelles.com/selectedtech/selectedtech-webinar-001/</link><pubDate>Mon, 20 May 2019 19:43:30 +0000</pubDate><guid>https://thomygoelles.com/selectedtech/selectedtech-webinar-001/</guid><description>&lt;p&gt;Welcome to our first SelectedTech Webinar. We are four MVPs from Europe and we decided to start our own webinar series. What we want to show is how we do stuff. We meet online and hit the record button. There is not a lot of time for preparation or planning for our webinars. As a result, you will see mistakes and errors, not high polished content. We strongly believe that showing how to overcome those hiccups adds additional value to the content.&lt;/p&gt;</description></item><item><title>Microsoft Forms and Flow for Teams channel governance</title><link>https://thomygoelles.com/microsoft-forms-and-flow-for-teams-channel-governance/</link><pubDate>Sat, 08 Dec 2018 22:27:46 +0000</pubDate><guid>https://thomygoelles.com/microsoft-forms-and-flow-for-teams-channel-governance/</guid><description>&lt;p&gt;Inspired by a tweet from fellow MVP Melissa Hubbard (&lt;a href="https://melihubb.com/" target="_blank" rel="noopener"&gt;https://melihubb.com/&lt;/a&gt;) this blog post introduces the idea of a Mircosoft Forms form combined with a flow to govern channel creation in Teams. Governance in Microsoft Teams is important for adoption and ease of use.&lt;a href="https://melihubb.com/2018/04/04/microsoft-teams-governance-how-to-create-a-channel-request-solution-using-flow/" target="_blank" rel="noopener"&gt;Melissa&amp;rsquo;s approach&lt;/a&gt; to the same problem is to use a SharePoint list for storing the information but I wanted to try it just with Microsoft Forms.&lt;/p&gt;
&lt;h4 id="why-should-we-use-governance"&gt;Why should we use governance?&lt;/h4&gt;
&lt;p&gt;The overall idea is to turn off self-service channel creation in Teams. Teams can get messy if there are too many channels. That&amp;rsquo;s why for some teams it&amp;rsquo;s better only to allow the owners of the team to create new channels. In your Teams settings, you have the option to define what members are allowed to do. In our scenario, we disallow the creation of new channels.&lt;/p&gt;</description></item><item><title>How to sideload an existing SPFx package in Microsoft Teams</title><link>https://thomygoelles.com/how-to-sideload-an-existing-spfx-package-in-microsoft-teams/</link><pubDate>Mon, 12 Nov 2018 00:45:45 +0000</pubDate><guid>https://thomygoelles.com/how-to-sideload-an-existing-spfx-package-in-microsoft-teams/</guid><description>&lt;h4 id="introduction"&gt;Introduction&lt;/h4&gt;
&lt;p&gt;In preparation for a talk next week I spent the whole weekend on creating demos and slides. A couple of days ago the SharePoint team released version 1.7 of the SharePoint Framework. This release has a ton of features, but one specific for Microsoft Teams adding the capability to surface SPFx web parts inside a Microsoft Teams tab. As my talk will be about Microsoft Teams why not change the demo plans 72 hours before the talk and try something new?&lt;/p&gt;</description></item><item><title>Theodore - a bot for creating a team in Microsoft Teams</title><link>https://thomygoelles.com/theodore-a-bot-for-creating-a-team-in-microsoft-teams/</link><pubDate>Fri, 17 Nov 2017 23:07:20 +0000</pubDate><guid>https://thomygoelles.com/theodore-a-bot-for-creating-a-team-in-microsoft-teams/</guid><description>&lt;p&gt;My last posts were all about getting up to speed with the Microsoft Teams PowerShell cmdlets released two weeks ago. Running those cmdlets in an Azure Function creates some nice options in terms of creating a team in Teams (still, the wording is just awkward). I&amp;rsquo;m sure you read about all the governance discussion that services like Teams or Groups start in each environment. Only with proper tooling, you can manage the process of orchestrating your different collaboration features in Office365. To take this idea to the next level, what about using a bot in Teams to handling a users request of creating a new team. &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/11/Theodore-Architecture.png" alt=""&gt;This post describes how you can create a bot for your users that will ask for some data in order to create a new team in Microsoft Teams. The bot will call an http triggered Azure Function that is using PowerShell to handle the requests and has the new Teams cmdlets deployed to be able to create a new team in our tenant.    To code in the git hub repo is based on an example project (&lt;a href="https://github.com/Microsoft/BotBuilder-Samples" target="_blank" rel="noopener"&gt;https://github.com/Microsoft/BotBuilder-Samples&lt;/a&gt;)  of a dot.net bot that shows how the different dialogs in a bot can be wired together. The solution is quite simple and of course no way production ready: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/11/TheodoreSolution.png" alt=""&gt; An example dialog of the bot looks like this: &lt;img src="http://www.modernworkplacesolutions.rocks/wp-content/uploads/2017/11/TheodoreConversation.png" alt=""&gt; To create this kind of dialog you simply start the interaction with the user with code like this:&lt;code&gt;private async Task MessageReceivedAsync(IDialogContext context, IAwaitable&amp;lt;IMessageActivity&amp;gt; result) { PromptDialog.Choice( context, this.AfterChoiceSelected, new\[\] { ShowMyTeamsOption, CreateTeamOption }, &amp;quot;Hi I'm Theodor your Team automation but. How can I help?&amp;quot;, &amp;quot;I am sorry but I didn't understand that. I need you to select one of the options below&amp;quot;, attempts: 2); }&lt;/code&gt;This will create our two different buttons and will guide the user in the directions we want them to choose from. After we have all the data from the user, in our case just an alias and a display name, we can now call the Azure Function handling our request.```
Dictionary&amp;lt;string, string&amp;gt; dictionary = new Dictionary&amp;lt;string, string&amp;gt;
{
{ &amp;ldquo;displayName&amp;rdquo;, this.displayname },
{ &amp;ldquo;alias&amp;rdquo;, this.alias }
};&lt;/p&gt;</description></item><item><title>Microsoft Teams Automation - Create Team from Webhook</title><link>https://thomygoelles.com/microsoft-teams-automation-create-team-from-webhook/</link><pubDate>Fri, 03 Nov 2017 17:54:49 +0000</pubDate><guid>https://thomygoelles.com/microsoft-teams-automation-create-team-from-webhook/</guid><description>&lt;p&gt;Today Microsoft released the Microsoft Teams Powershell Cmdlets module (&lt;a href="https://www.powershellgallery.com/packages/MicrosoftTeams/0.9.0" target="_blank" rel="noopener"&gt;https://www.powershellgallery.com/packages/MicrosoftTeams/0.9.0&lt;/a&gt;). This allows you to use PowerShell as the first basic API for Teams. Bill Bliss (@bill_bliss) from the Teams Team (still awkward wording) told us this week on Monday in a session at Microsoft Vienna that they will push the PowerShell Cmdlets in the coming weeks and the Graph API will follow. To be honest didn&amp;rsquo;t believe that they would be that fast in releasing the bits but I&amp;rsquo;m more than happy now. To take this a little further I created an Azure Automation Runbook for the CreateTeams Cmdlet in my Azure Tenant. The Runbook itself can be triggered by a webhook. With that in hand, you basically can create a bot or a Teams app to create or update your Teams based on the cmdlets Microsoft released.   The Runbook I created uses the basic steps for reading input from the webhook based on this blog post: &lt;a href="https://blogs.technet.microsoft.com/stefan_stranger/2017/03/18/azure-automation-runbook-webhook-lesson-learned/" target="_blank" rel="noopener"&gt;https://blogs.technet.microsoft.com/stefan_stranger/2017/03/18/azure-automation-runbook-webhook-lesson-learned/&lt;/a&gt;```
[CmdletBinding()]
Param
([object]$WebhookData) #this parameter name needs to be called WebHookData otherwise the webhook does not work as expected.
$VerbosePreference = &amp;lsquo;continue&amp;rsquo;&lt;/p&gt;</description></item></channel></rss>