<?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>Teams Archives - Pereira, Thiago Santos.</title>
	<atom:link href="https://thiagosantos.com/blog/tag/teams/feed/" rel="self" type="application/rss+xml" />
	<link>https://thiagosantos.com/blog/tag/teams/</link>
	<description>the fun of code.</description>
	<lastBuildDate>Sat, 02 Mar 2024 17:58:23 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5</generator>
	<item>
		<title>Microsoft Teams: Deeplink pro seu App através da Notificação</title>
		<link>https://thiagosantos.com/blog/856/javascript/microsoft-teams-deeplink-pro-seu-app-atraves-da-notificacao/</link>
					<comments>https://thiagosantos.com/blog/856/javascript/microsoft-teams-deeplink-pro-seu-app-atraves-da-notificacao/#respond</comments>
		
		<dc:creator><![CDATA[Pereira, Thiago Santos]]></dc:creator>
		<pubDate>Sat, 02 Mar 2024 17:47:33 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Deeplink]]></category>
		<category><![CDATA[Deeplink Microsoft Teams]]></category>
		<category><![CDATA[Microsoft Teams]]></category>
		<category><![CDATA[Notificação]]></category>
		<category><![CDATA[Teams]]></category>
		<guid isPermaLink="false">https://thiagosantos.com/blog/?p=856</guid>

					<description><![CDATA[<p>Uma sacada de como passar parâmetros para o seu aplicativo no Microsoft Teams</p>
<p>The post <a href="https://thiagosantos.com/blog/856/javascript/microsoft-teams-deeplink-pro-seu-app-atraves-da-notificacao/">Microsoft Teams: Deeplink pro seu App através da Notificação</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Desenvolvendo recentemente um meio de integrar um aplicativo web já existente ao Microsoft Teams, me deparei com a necessidade de que a notificação do Teams ao direcionar para o aplicativo instalado dentro do Teams também passasse um parâmetro extra para que o aplicativo existente pudesse tratar esse parâmetro e redirecionar o usuário para área correta.</p>



<p>Foi custoso achar uma resposta para isso, mas acabei com a ajuda de um colega e dessa maravilhosa página <a href="https://microsoft.github.io/app-camp/aad/Deeplink/" target="_blank" rel="noreferrer noopener">https://microsoft.github.io/app-camp/aad/Deeplink/</a>  conseguir passar parâmetro para dentro da aplicação quando abre através da Notificação.</p>



<span id="more-856"></span>



<p>Quando você envia uma notificação para o usuário do seu aplicativo no Teams você tem a possibilidade de estabelecer duas formas de ao clicar na notificação o usuário ser direcionado para o seu aplicativo direto utilizando o source no item topic como text ou entityURL e passando o value ou o webUrl como no exemplo abaixo.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
//Corpo do envio da notificação
//POST https://graph.microsoft.com/v1.0/teamwork/sendActivityNotificationToRecipients
{    
   &quot;topic&quot;: {
       &quot;source&quot;: &quot;entityUrl&quot;,
       &quot;value&quot;: &quot;https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/{teams_app_id}&quot;
   },

    &quot;activityType&quot;: &quot;novaNotificacao&quot;,
    &quot;previewText&quot;: {
        &quot;content&quot;: &quot;Temos uma nova informação para você!!&quot;
    },
    &quot;recipients&quot;: &#x5B;
        {
            &quot;@odata.type&quot;: &quot;microsoft.graph.aadUserNotificationRecipient&quot;,
            &quot;userId&quot;: &quot;617310a6-9d5d-4459-b268-07802596d419&quot;
        }
    ]
}
</pre></div>


<p>Utilizando o entityUrl é o jeito mais simples de ao clicar na notificação o seu usuário seja redirecionado para o seu aplicativo dentro do Teams. Acontece que através desse método não é possível passar parâmetros nem especificar em qual das abas do seu aplicativo você quer que abra inicialmente. O jeito é usar o modo text passando o weburl. O webURL é uma url do Teams que no entanto utiliza o ID do Teams que é gerado quando envia o aplicativo para a loja de aplicativos da organização, seguido do entityId é que a aba a qual você quer abrir dentro do seu aplicativo. No código abaixo fica mais fácil de entender.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
//Corpo do envio da notificação
//POST https://graph.microsoft.com/v1.0/teamwork/sendActivityNotificationToRecipients
{
    &quot;topic&quot;: {
        &quot;source&quot;: &quot;text&quot;,
        &quot;webUrl&quot;: &quot;https://teams.microsoft.com/l/entity/{uploaded_teams_app_id}/{entity_id}?context=%7B%22subEntityId%22:%22https://exemplo.com.br/timeline/post/1406%22%7D&quot;
    },
    &quot;activityType&quot;: &quot;novaNotificacao&quot;,
    &quot;previewText&quot;: {        
        &quot;content&quot;: &quot;Temos uma nova informação para você!!&quot;
    ]},   
    &quot;recipients&quot;: &#x5B;
        {
            &quot;@odata.type&quot;: &quot;microsoft.graph.aadUserNotificationRecipient&quot;,
            &quot;userId&quot;: &quot;617310a6-9d5d-4459-b268-07802596d419&quot;
        }
    ]
}
</pre></div>


<p>A sacada para o envio de um parâmetro seu para dentro do seu aplicativo é utilizar o parâmetro &#8220;context&#8221; onde um JSON no formato {&#8220;subEntityId&#8221;:&#8221;XXXXX&#8221;} é passado o valor do subEntityId que pode ser um valor número, uma string ou até um objeto é recuperado através do Teams JS SDK, mas para confusão geral o parâmetro dentro do objeto do contexto é &#8220;context.page.subPageId&#8221;, chora.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
//dentro da sua aplicação
//....
try{

    await app.initialize();
    const context = app.getContext();
    const parametro_passado = context.page.subPageId; //:)        

}
//...
</pre></div>


<p>Resumindo: você passa o contexto utilizando o subEntityId e recupera através do Teams JS SDK utilizando o objeto de contexto no &#8220;context.page.subPageId&#8221;.</p>



<p>Dai com o parâmetro em mãos você faz o que precisa fazer antes da aplicação carregar. No contexto você pode passar uma URL e configurar o seu app para redirecionar o parametro_passado com o valor da URl. Isso simplifica bastante o desenvolvimento e redirecionamento interno.</p>



<p></p>
<p>The post <a href="https://thiagosantos.com/blog/856/javascript/microsoft-teams-deeplink-pro-seu-app-atraves-da-notificacao/">Microsoft Teams: Deeplink pro seu App através da Notificação</a> appeared first on <a href="https://thiagosantos.com/blog">Pereira, Thiago Santos.</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thiagosantos.com/blog/856/javascript/microsoft-teams-deeplink-pro-seu-app-atraves-da-notificacao/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
