<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>microsoft teams app with vuejs &#8211; Sibeesh Passion</title>
	<atom:link href="https://www.sibeeshpassion.com/tag/microsoft-teams-app-with-vuejs/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.sibeeshpassion.com</link>
	<description>My passion towards life</description>
	<lastBuildDate>Fri, 26 Jun 2020 05:50:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>/wp-content/uploads/2017/04/Sibeesh_Passion_Logo_Small.png</url>
	<title>microsoft teams app with vuejs &#8211; Sibeesh Passion</title>
	<link>https://www.sibeeshpassion.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Create Microsoft Teams App Using Vuejs, Azure, JavaScript SDK</title>
		<link>https://www.sibeeshpassion.com/create-microsoft-teams-app-using-vuejs-azure-javascript-sdk/</link>
					<comments>https://www.sibeeshpassion.com/create-microsoft-teams-app-using-vuejs-azure-javascript-sdk/#disqus_thread</comments>
		
		<dc:creator><![CDATA[SibeeshVenu]]></dc:creator>
		<pubDate>Wed, 24 Jun 2020 08:39:50 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure DevOps]]></category>
		<category><![CDATA[develop custom apps for microsoft teams]]></category>
		<category><![CDATA[Microsoft teams]]></category>
		<category><![CDATA[microsoft teams app with vuejs]]></category>
		<category><![CDATA[Office 365]]></category>
		<category><![CDATA[Vuejs]]></category>
		<category><![CDATA[yeoman generator vuejs]]></category>
		<guid isPermaLink="false">https://sibeeshpassion.com/?p=14136</guid>

					<description><![CDATA[Create and connect our Teams application with Vuejs, a new Azure Web App, Create Build and Release pipeline for our Vuejs application and then install Tab App.]]></description>
										<content:encoded><![CDATA[
<p>[toc]</p>



<h2 class="wp-block-heading">Introduction</h2>



<p>The Microsoft Teams Yeoman generator is an amazing tool to develop applications for your Microsoft Teams, but it is not capable to work with Vuejs yet. I wanted to develop my application in Vuejs, so I created a Microsoft Teams app using Teams JavaScript SDK as <a href="https://sibeeshpassion.com/create-custom-web-apps-for-microsoft-teams-using-azure-function-node-js/">I explained in my previous post</a>. This blog is a continuation of the previous post, so please read that to get an idea of what we are going to develop in this blog post. </p>



<h2 class="wp-block-heading">Background</h2>



<p>In our last post, we developed,</p>



<ol class="wp-block-list"><li>a Microsoft Teams app with JavaScript SDK</li><li>an Azure Function to serve the static file as a website</li><li>Generate the manifest file for our Teams Application</li><li>Install the App in Teams</li></ol>



<p>And in this post we will be doing,</p>



<ol class="wp-block-list"><li>Create a sample Vuejs application</li><li>Connect our Microsoft Teams application with Vuejs application, at the end both are JavaScript right?</li><li>Create a new Web App in the Azure portal</li><li>Create Build pipeline for our Vuejs application</li><li>Create a release pipeline for our Vuejs application</li></ol>



<p>So do you like any of the point mentioned above? If yes, please stay with me till the end.</p>



<h2 class="wp-block-heading">Develop Microsoft Teams App with Vuejs</h2>



<h3 class="wp-block-heading">Setup Vuejs and create a new project</h3>



<p>The first thing to do is to install the Vue CLI on our machine, and you can do that by running the preceding command.</p>



<pre class="wp-block-code"><code>npm install -g @vue/cli</code></pre>



<p>Please read the <a href="https://cli.vuejs.org/guide/installation.html" target="_blank" rel="noreferrer noopener nofollow">installation guides here</a>, if you want to know it in detail. Once that is done, now is the time to create our first vuejs application using this command. </p>



<pre class="wp-block-code"><code>vue create hello-world</code></pre>



<p>You will be asked to select your preset, I select the default one, that is (babel, eslint). In the end, you will be given a beautiful, small Vuejs application. Easy right? As the motive of this blog post is not to talk about the Vuejs application, I won&#8217;t go in detail about it. </p>



<h3 class="wp-block-heading">Connect both Tab Apps and Vuejs app</h3>



<p>The Vuejs application has a folder called Public, and this is where we paste the files of our Teams Tab App. So now your public folder should look like below.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="261" height="313" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/Public-Folder-in-Vuejs-1.png" alt="" class="wp-image-14138" srcset="/wp-content/uploads/2020/06/Public-Folder-in-Vuejs-1.png 261w, /wp-content/uploads/2020/06/Public-Folder-in-Vuejs-1-250x300.png 250w" sizes="(max-width: 261px) 100vw, 261px" /><figcaption>Public folder in Vuejs</figcaption></figure></div>



<p>Now open the Index.html file in the public folder and update the codes with our Tab App&#8217;s Index.html file, please remember that we are just adding some codes here, not replacing the complete HTML. Here is the complete Index.html file content.</p>



<script src="https://gist.github.com/SibeeshVenu/085b906722d1a80553197976f8d41a2d.js"></script>



<p>I have explained the Tab App&#8217;s code in my previous post, so reading that is still a good idea. Now let us go see the content of the config.html file, we are going to do some changes here. As I combined both Vuejs application and out Teams Tab app to one single application I thought to create an Azure Web App to host this application, instead of doing it with an Azure Function App as we did on the first blog. So here is your config.html file.</p>



<script src="https://gist.github.com/SibeeshVenu/d7fac90b5e28689254dc8a9347d317e7.js"></script>



<p>The only change that I did is changing websiteUrl, contentUrl in the code. We will be creating this website soon, no worries. We will have to do the changes in the manifest.json file too. Here is your manifest file.</p>



<script src="https://gist.github.com/SibeeshVenu/ebfdc823d1e474b87dc1d06b2cbd619e.js"></script>



<p>Please be noted that we have changed the configurationUrl and add our new URL to the validDomains. <strong>This step is very important</strong>.</p>



<h3 class="wp-block-heading">Create a Build Pipeline for Our App</h3>



<p>To create a build pipeline, go to your Azure DevOps and select your project, and then click on New Pipeline after clicking on the Pipelines section. You will be asked to select your repository and the pipeline configuration. As a configuration, select Node.js with Vue.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="918" height="505" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/Nodejs-with-Vue.png" alt="" class="wp-image-14140" srcset="/wp-content/uploads/2020/06/Nodejs-with-Vue.png 918w, /wp-content/uploads/2020/06/Nodejs-with-Vue-300x165.png 300w, /wp-content/uploads/2020/06/Nodejs-with-Vue-768x422.png 768w, /wp-content/uploads/2020/06/Nodejs-with-Vue-425x234.png 425w" sizes="(max-width: 918px) 100vw, 918px" /><figcaption>Nodejs with Vue</figcaption></figure>



<p>And in the section &#8220;Review your pipeline YAML&#8221; replace the content with the below codes.</p>



<script src="https://gist.github.com/SibeeshVenu/098cbc3ec8655de89591a88b6d5c7e85.js"></script>



<p>Now all you have to do is to click Save and run button. You can already see that we are building our application, copying the artifacts from the dist folder to Build.ArtifactStagingDirectory and then publish it with the name www. Sounds good? So once the build is successful you should see your artifacts as preceding.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="955" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/Buit-Artifact-Azure-Vuejs-1024x955.png" alt="" class="wp-image-14141" srcset="/wp-content/uploads/2020/06/Buit-Artifact-Azure-Vuejs-1024x955.png 1024w, /wp-content/uploads/2020/06/Buit-Artifact-Azure-Vuejs-300x280.png 300w, /wp-content/uploads/2020/06/Buit-Artifact-Azure-Vuejs-768x717.png 768w, /wp-content/uploads/2020/06/Buit-Artifact-Azure-Vuejs-425x397.png 425w, /wp-content/uploads/2020/06/Buit-Artifact-Azure-Vuejs.png 1150w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Build Artifact Azure Vuejs</figcaption></figure>



<p>Do you remember that we placed all of our Tab App related contents in the public folder of the Vue app? The artifacts generated will have those files too. Now we need to set up our Release pipeline, but before that, we should create an Azure Web App in the Azure portal.</p>



<h3 class="wp-block-heading">Create an Azure Web App</h3>



<p>Creating an Azure Web App is really straight forward, I am sure that you will be able to create one. Click on the New Resource and then search for Web App, provide all the information in the form you get now. Once everything is filled, review, and create. That&#8217;s it.  <strong>Remember to give the resource name as the name we gave in the manifest.json, config.html files</strong>.</p>



<h3 class="wp-block-heading">Create a Release Pipeline for Vue App</h3>



<p>As we already have an artifact ready, it is time to create a release pipeline. Go to the Pipelines section in your Azure DevOps and click on Releases, and then click on +New Release Pipeline.  Now select the artifacts you have, and select the Task Azure Web App Deploy. </p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="442" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/Azure-Web-App-Deploy-Task-1024x442.png" alt="" class="wp-image-14142" srcset="/wp-content/uploads/2020/06/Azure-Web-App-Deploy-Task-1024x442.png 1024w, /wp-content/uploads/2020/06/Azure-Web-App-Deploy-Task-300x130.png 300w, /wp-content/uploads/2020/06/Azure-Web-App-Deploy-Task-768x332.png 768w, /wp-content/uploads/2020/06/Azure-Web-App-Deploy-Task-425x184.png 425w, /wp-content/uploads/2020/06/Azure-Web-App-Deploy-Task.png 1271w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Azure Web App Deploy</figcaption></figure>



<p>And here is how your Task should look like.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="804" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/Azure-Web-App-Task-Details-1024x804.png" alt="" class="wp-image-14143" srcset="/wp-content/uploads/2020/06/Azure-Web-App-Task-Details-1024x804.png 1024w, /wp-content/uploads/2020/06/Azure-Web-App-Task-Details-300x235.png 300w, /wp-content/uploads/2020/06/Azure-Web-App-Task-Details-768x603.png 768w, /wp-content/uploads/2020/06/Azure-Web-App-Task-Details-425x334.png 425w, /wp-content/uploads/2020/06/Azure-Web-App-Task-Details.png 1403w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Azure Web App Task Details</figcaption></figure>



<p>Now click Save and run a new release. And if you check the release log, if everything goes well, this is how it should be.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="897" height="479" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/Azure-Web-App-Deploy-Log.png" alt="" class="wp-image-14144" srcset="/wp-content/uploads/2020/06/Azure-Web-App-Deploy-Log.png 897w, /wp-content/uploads/2020/06/Azure-Web-App-Deploy-Log-300x160.png 300w, /wp-content/uploads/2020/06/Azure-Web-App-Deploy-Log-768x410.png 768w, /wp-content/uploads/2020/06/Azure-Web-App-Deploy-Log-425x227.png 425w" sizes="(max-width: 897px) 100vw, 897px" /><figcaption>Azure Web App Log</figcaption></figure>



<p>Now you should be able to visit your Azure web application and make sure that the index.html, config.html works fine. Because in our next step we are going to install our App in Teams. </p>



<h2 class="wp-block-heading">Install the Vue Tab App</h2>



<p>Now go to the public folder in your Vue application and select the files manifest.json, color.png, outline.png, and right click and create a Zip file. We will be uploading this Zip file in our Teams. If you are unsure how to do this, I have already explained that in <a href="https://sibeeshpassion.com/create-custom-web-apps-for-microsoft-teams-using-azure-function-node-js/#install-the-teams-app-in-teams">our previous blog</a>. Once after the installation, go to your Tab app and I am sure the Vuejs application will be loaded in the tab.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="937" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/Team-Tab-App-Output-1024x937.png" alt="" class="wp-image-14146" srcset="/wp-content/uploads/2020/06/Team-Tab-App-Output-1024x937.png 1024w, /wp-content/uploads/2020/06/Team-Tab-App-Output-300x274.png 300w, /wp-content/uploads/2020/06/Team-Tab-App-Output-768x702.png 768w, /wp-content/uploads/2020/06/Team-Tab-App-Output-1536x1405.png 1536w, /wp-content/uploads/2020/06/Team-Tab-App-Output-425x389.png 425w, /wp-content/uploads/2020/06/Team-Tab-App-Output.png 1710w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Team Tab App Output</figcaption></figure>



<h2 class="wp-block-heading">Conclusion</h2>



<p>I hope this post was useful and you have learned the below things.</p>



<ol class="wp-block-list"><li>How to create a Vuejs application?</li><li>How to connect a JavaScript SDK Team Tab application with Vuejs app</li><li>How to create an Azure Web App?</li><li>How to create Build Pipeline for Vuejs app in Azure DevOps?</li><li>How to create Release Pipeline for Vuejs app in Azure DevOps?</li><li>How to install the new Vuejs Team Tab app in Microsoft Teams?</li></ol>



<p>There is also another way of doing this with the <a href="https://github.com/pnp/generator-spfx" target="_blank" rel="noreferrer noopener">Generator SPFX</a> , this will help you create the SharePoint web part in Vuejs and the same can be added to the Microsoft Teams as <a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/using-web-part-as-ms-teams-tab?WT.mc_id=AZ-MVP-5001828">explained in this blog</a>.<strong> I may write about this on my next blog. Stay tuned</strong>.</p>



<h2 class="wp-block-heading">Source Code</h2>



<p>Please feel free to check out the repository <a href="https://github.com/SibeeshVenu/Microsoft-Teams-App-with-Vuejs-and-Azure" target="_blank" rel="noreferrer noopener">here</a>.</p>



<h2 class="wp-block-heading">About the Author</h2>



<p>I am yet another developer who is passionate about writing and video creation. I have written close to 500 blogs on my <a href="https://sibeeshpassion.com/" target="_blank" rel="noreferrer noopener">blog</a>. And I upload videos on my YouTube channels <a href="https://www.youtube.com/njanorumalayali" target="_blank" rel="noreferrer noopener">Njan Oru Malayali</a> and <a href="https://www.youtube.com/SibeeshPassion" target="_blank" rel="noreferrer noopener">Sibeesh Passion</a>. Please feel free to follow me.</p>



<ul class="wp-block-list"><li><a href="https://github.com/SibeeshVenu">GitHub</a></li><li><a href="https://medium.com/@sibeeshvenu">medium</a></li><li><a href="https://twitter.com/sibeeshvenu">Twitter</a></li></ul>



<h2 class="wp-block-heading">Your turn. What do you think?</h2>



<p>Thanks a lot for reading. Did I miss anything that you may think which is needed in this article? Could you find this post useful? Kindly do not forget to share your feedback.</p>



<p>Kindest Regards<br>Sibeesh Venu</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sibeeshpassion.com/create-microsoft-teams-app-using-vuejs-azure-javascript-sdk/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Create Custom Web Apps for Microsoft Teams Using Azure Function, Node Js</title>
		<link>https://www.sibeeshpassion.com/create-custom-web-apps-for-microsoft-teams-using-azure-function-node-js/</link>
					<comments>https://www.sibeeshpassion.com/create-custom-web-apps-for-microsoft-teams-using-azure-function-node-js/#disqus_thread</comments>
		
		<dc:creator><![CDATA[SibeeshVenu]]></dc:creator>
		<pubDate>Tue, 23 Jun 2020 11:51:03 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure Function]]></category>
		<category><![CDATA[develop custom apps for microsoft teams]]></category>
		<category><![CDATA[javascript sdk for teams]]></category>
		<category><![CDATA[load static website using azure function]]></category>
		<category><![CDATA[microsoft teams app with vuejs]]></category>
		<category><![CDATA[Office 365]]></category>
		<category><![CDATA[yeoman generator vuejs]]></category>
		<guid isPermaLink="false">https://sibeeshpassion.com/?p=14121</guid>

					<description><![CDATA[Do you know that we can always develop our own web apps and integrate the same to our Microsoft Teams? That is exactly what we are going to do in this blog.]]></description>
										<content:encoded><![CDATA[
<p>[toc]</p>



<h2 class="wp-block-heading">Introduction</h2>



<p>The popularity of Microsoft Teams is getting increased day by day, thus the new requirements. Do you know that we can always develop our own web apps and integrate the same to our Microsoft Teams? That is exactly what we are going to do in this blog. Let&#8217;s start then.</p>



<h2 class="wp-block-heading">Background</h2>



<p>My plan was to create a web application in Vuejs with Nodejs, and convert the same to Microsoft Team&#8217;s web application so that my Team members can use it. There is a generator that helps you create a basic application with some default functionality, but that will support only Angular and react for now (the time that I write this article). </p>



<figure class="wp-block-image size-large"><img decoding="async" width="948" height="883" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/yo-office.png" alt="" class="wp-image-14122" srcset="/wp-content/uploads/2020/06/yo-office.png 948w, /wp-content/uploads/2020/06/yo-office-300x279.png 300w, /wp-content/uploads/2020/06/yo-office-768x715.png 768w, /wp-content/uploads/2020/06/yo-office-425x396.png 425w" sizes="(max-width: 948px) 100vw, 948px" /><figcaption>yo office generator </figcaption></figure>



<p>You should also keep in mind that you will have to set up your machine before you start working with &#8220;yo generator&#8221;. The complete setup can be found <a href="https://github.com/pnp/generator-teams/wiki/Setup-Machine" target="_blank" rel="noreferrer noopener nofollow">here</a>, I am just mentioning it here, even though it is not relevant to this article. So here I will create a Teams App using Javascript SDK and I will connect the same with my Vuejs application later, I will write about that in my next blog.</p>



<h2 class="wp-block-heading">What we are going to do</h2>



<p>We will be doing preceding things in this post,</p>



<ol class="wp-block-list"><li>Create an Azure function with Node Js HttpTrigger</li><li>Customize the Azure function to use static HTML file we upload</li><li>Generate the Index.html file, config.html file as per Microsoft Teams Web App standard</li><li>Generate the manifest file</li><li>Install our new Web App in Microsoft Team</li></ol>



<p>Are you still with me and above mentioned points sounds interesting for you, then let&#8217;s develop something.</p>



<h3 class="wp-block-heading">Create Static Website Using JavaScript SDK</h3>



<p>Here we are going to use <a href="https://docs.microsoft.com/en-us/javascript/api/overview/msteams-client/?WT.mc_id=AZ-MVP-5001828" target="_blank" rel="noreferrer noopener">Microsoft Teams JavaScript client SDK</a> to develop our application. And with the help of these SDK, we can develop a wide variety of applications, some of them are listed below.</p>



<ul class="wp-block-list"><li>Tabs</li><li>Bots</li><li>Messaging Extensions</li><li>Task Modules</li><li>Webhooks and Office 365 connector</li></ul>



<p>And within the Tab type, we can develop a static Tab application (The tabs that are shown in the left side of the Teams application, here the context will be same for all the users) and a configurable tab application (The tab we can add to any channel, or groups and can be configurable with logged-in users context). </p>



<p>Here we are going to develop a small application that just shows the logged in user email id on our home page. Just remember that this is just a starting blog and the motive of this blog is to give you a walkthrough on how you can develop and install custom apps in Microsoft Teams. To develop the application for Microsoft Teams, we need the below pages.</p>



<ol class="wp-block-list"><li>Content Page(index.html), this is the page that displayed in the Tab app</li><li>Configuration Page(config.html), that used to set the content page</li></ol>



<p>Now open any of your favorite code editors and create two files index.html and config.html and then replace the codes. </p>



<script src="https://gist.github.com/SibeeshVenu/e68fc11f0e32e54fabb4c2b6a5c51dda.js"></script>



<p>Here we are just setting our Tab&#8217;s name and then we are calling &#8220;microsoftTeams.settings.setValidityState(true)&#8221;, at then end the Save button will be enabled for you after the validation. Please remember that you should call &#8220;microsoftTeams.initialize()&#8221; before you perform any of these tasks. </p>



<script src="https://gist.github.com/SibeeshVenu/5383a31253265957a8c25a489add0d8a.js"></script>



<p>Here on our content page, we are just getting the logged-in user name and show it to a div element. As simple as that. </p>



<h3 class="wp-block-heading">Static Website Using Azure Fucntion</h3>



<p>The capabilities of an Azure Function is limitless, it is up to you for what the Azure Function can be used. Now we are going to use the Azure function to host a static website. &nbsp;I hope you have already used Azure Functions, if you have not, you can read some related articles&nbsp;<a href="https://sibeeshpassion.com/tag/azure-function/">here</a>.</p>



<p>Now go to your Azure portal and search for Function App and create one. Remember to select the <strong>Nodejs as runtime stack</strong>. Once the function app is deployed successfully go to the Functions tab and click on the plus icon.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="691" height="327" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/create-azure-function.png" alt="" class="wp-image-14123" srcset="/wp-content/uploads/2020/06/create-azure-function.png 691w, /wp-content/uploads/2020/06/create-azure-function-300x142.png 300w, /wp-content/uploads/2020/06/create-azure-function-425x201.png 425w" sizes="(max-width: 691px) 100vw, 691px" /><figcaption>create azure function</figcaption></figure>



<p>From the template section, select the template HttpTrigger and then give a name for your function and set the authorization level to anonymous for now. You should see your function now and we can edit the code now. Go to your function and click on the button Code + Test.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="867" height="687" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/azure-function-code-test.png" alt="" class="wp-image-14124" srcset="/wp-content/uploads/2020/06/azure-function-code-test.png 867w, /wp-content/uploads/2020/06/azure-function-code-test-300x238.png 300w, /wp-content/uploads/2020/06/azure-function-code-test-768x609.png 768w, /wp-content/uploads/2020/06/azure-function-code-test-425x337.png 425w" sizes="(max-width: 867px) 100vw, 867px" /><figcaption>Code+Test</figcaption></figure>



<p>Here is the place where you can edit your function code. Replace the codes with the below one. </p>



<script src="https://gist.github.com/SibeeshVenu/ff4cba0a4a88d6a743e742c0581ab8f0.js"></script>



<p>Here we are loading our index.html file from the directory &#8220;myfiles&#8221; and add it as the context body so that the page will be displayed. Save the function and now we can create the folder &#8220;myfiles&#8221; and upload our pages there. To do that, go to your Azure Function and then click on Advanced Tools and click on the Goto link if it is asked. This will open a new browser tab with advanced tools. You can also visit this page by directly go to <strong>https://{yourfunctionname}.scm.azurewebsites.net/</strong>. Now click on the Debug console on the menu and then select CMD, go to the folder site -&gt; wwwroot -&gt; folder with the name of your function, this is where you will see the files function.json and index.js. Just click on the + (plus) icon on the top and create a new folder with the name &#8220;myfiles&#8221;. Go to the folder created and drag and drop your files there (index.html, config.html).</p>



<p>At this point, you should be able to see your index page, when you go to your function URL (https://yourfunctionname.azurewebsites.net/api/triggername?file=index.html), but if you go to the home page of your function by visiting https://yourfunctionname.azurewebsites.net, your index file is not loading right? We can override this by introducing a new proxy to our application. </p>



<p>Go to your Function App and click on the Proxies menu and then click on the +Add icon on the top. Fill the form given, your filled form should look like below.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="675" height="946" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/azure-function-proxy.png" alt="" class="wp-image-14126" srcset="/wp-content/uploads/2020/06/azure-function-proxy.png 675w, /wp-content/uploads/2020/06/azure-function-proxy-214x300.png 214w, /wp-content/uploads/2020/06/azure-function-proxy-392x550.png 392w" sizes="(max-width: 675px) 100vw, 675px" /><figcaption>Azure Function Proxy</figcaption></figure>



<p>Once the proxy is updated, go to your function home page and your index page should be loaded with the Team JavaScript SDK now, you can check this in the network tab in the browser console. </p>



<h3 class="wp-block-heading">Create Manifest for Teams App</h3>



<p>Now that our static website is ready, it is time to create a manifest for our team&#8217;s application. You can either create this manifest on your own, or you can use the tool called App Studio, <a href="https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/app-studio-overview?WT.mc_id=AZ-MVP-5001828" target="_blank" rel="noreferrer noopener">here is the well-documented page which explains the features</a> on this application. By using this tool we generate a manifest file by giving the static page files and other information. And at the end of the process, if all the validations are successful, then you will be given options to download the manifest file and install the app to any channel, or teams.</p>



<p>Here is the sample manifest file generated.</p>



<script src="https://gist.github.com/SibeeshVenu/6d1802af3244df9d3b2ecd88888a9470.js"></script>



<p>If you want to understand the complete structure of the manifest file, <a href="https://docs.microsoft.com/en-us/microsoftteams/platform/resources/schema/manifest-schema/?WT.mc_id=AZ-MVP-5001828" target="_blank" rel="noreferrer noopener">here is the link</a>.</p>



<h3 class="wp-block-heading">Install the Teams App in Teams</h3>



<p>If you choose the option of downloading the manifest file, here is how you can install it. Click on the three-dot on the static tabs in Teams and then click on the More Apps link.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="742" height="922" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/more-apps-option.png" alt="" class="wp-image-14127" srcset="/wp-content/uploads/2020/06/more-apps-option.png 742w, /wp-content/uploads/2020/06/more-apps-option-241x300.png 241w, /wp-content/uploads/2020/06/more-apps-option-425x528.png 425w" sizes="(max-width: 742px) 100vw, 742px" /><figcaption>Add more apps</figcaption></figure>



<p>Now click on the &#8220;Upload a custom app&#8221; link at the bottom and then select your manifest zip file downloaded, it will contain the manifest.json file and other related files. Clicking on the &#8220;Add to a team&#8221; button on the next screen will start the process.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="797" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/add-app-to-a-team-1024x797.png" alt="" class="wp-image-14128" srcset="/wp-content/uploads/2020/06/add-app-to-a-team-1024x797.png 1024w, /wp-content/uploads/2020/06/add-app-to-a-team-300x234.png 300w, /wp-content/uploads/2020/06/add-app-to-a-team-768x598.png 768w, /wp-content/uploads/2020/06/add-app-to-a-team-1536x1196.png 1536w, /wp-content/uploads/2020/06/add-app-to-a-team-425x331.png 425w, /wp-content/uploads/2020/06/add-app-to-a-team.png 1782w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Add app to Team</figcaption></figure>



<p>In the next screen, select the channel you want to add this Tab App, and then click on the &#8220;Setup a tab&#8221; button. Once it is installed, you should see your email if you go to your Tab Application.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="191" src="https://sibeeshpassion.com/wp-content/uploads/2020/06/output-1024x191.png" alt="" class="wp-image-14129" srcset="/wp-content/uploads/2020/06/output-1024x191.png 1024w, /wp-content/uploads/2020/06/output-300x56.png 300w, /wp-content/uploads/2020/06/output-768x143.png 768w, /wp-content/uploads/2020/06/output-425x79.png 425w, /wp-content/uploads/2020/06/output.png 1238w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Output</figcaption></figure>



<h2 class="wp-block-heading">Conclusion</h2>



<p>I hope this post was useful and you have learned the below things.</p>



<ol class="wp-block-list"><li>What are Microsoft Teams Web App?</li><li>How to create a custom application for Microsoft Teams?</li><li>How to load a static website using the Azure Function?</li><li>What is Manifest and how to generate it using App Studio?</li><li>How to install the Web Apps in Microsoft Teams?</li></ol>



<h2 class="wp-block-heading">About the Author</h2>



<p>I am yet another developer who is passionate about writing and video creation. I have written close to 500 blogs on my&nbsp;<a href="https://sibeeshpassion.com/" target="_blank" rel="noreferrer noopener">blog</a>. And I upload videos on my YouTube channels&nbsp;<a href="https://www.youtube.com/njanorumalayali" target="_blank" rel="noreferrer noopener">Njan Oru Malayali</a>&nbsp;and&nbsp;<a href="https://www.youtube.com/SibeeshPassion" target="_blank" rel="noreferrer noopener">Sibeesh Passion</a>. Please feel free to follow me.</p>



<ul class="wp-block-list"><li><a href="https://github.com/SibeeshVenu">GitHub</a></li><li><a href="https://medium.com/@sibeeshvenu">medium</a></li><li><a href="https://twitter.com/sibeeshvenu">Twitter</a></li></ul>



<h2 class="wp-block-heading">Your turn. What do you think?</h2>



<p>Thanks a lot for reading. Did I miss anything that you may think which is needed in this article? Could you find this post useful? Kindly do not forget to share your feedback.<a href="https://sibeeshpassion.com/create-microsoft-teams-app-using-vuejs-azure-javascript-sdk/" target="_blank" rel="noreferrer noopener"> <strong>In the next post, we will see how we can connect this application to our Vuejs application</strong></a>.</p>



<p>Kindest Regards<br>Sibeesh Venu</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sibeeshpassion.com/create-custom-web-apps-for-microsoft-teams-using-azure-function-node-js/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
