SOLVED

Notification bot not detecting any installations

Copper Contributor

Hello,

I created a teams notification bot using Teams Toolkit on VSCode (https://learn.microsoft.com/en-us/microsoftteams/platform/toolkit/teams-toolkit-fundamentals?pivots=...). I selected http trigger through a restify server.

Before that, I created an app on Azure for the bot and generated a secret, and I created a bot on the Bot Framework (https://dev.botframework.com/bots) that uses the app ID of the previously created app.

I filled in the credentials of the bot in the manifest template and in `initialize.ts` (file generated by Teams Toolkit initializing the bot). The code that I have is basically the code generated by Teams Toolkit, I did not change anything besides the credentials for the bot and the manifest.
I then started the app in a terminal with npm, zipped the manifest and uploaded it as a custom app on teams. It opens a tab with a chat with the bot on teams, it just needs the http trigger to send me a message. When I send a POST request to http://localhost:3978/api/notification I can see the query working but the code that checks for bot installations and send an adaptive card to them returns nothing (`bot.notification.installations()` is empty), as if no one installed the bot, but I did. I tried using ngrok to create a tunnel but it does not change anything.

What am I doing wrong ? I want to try the bot when it is running with node locally as later I'll need to implement it in an already existing node express app.

Thank you for your time.

10 Replies
@BarneyGood- Thanks for reporting your issue.
We will investigation this issue and get back to you.

Thanks.
I'd like to add that trying the bot through the debugger (as explained in https://learn.microsoft.com/en-us/microsoftteams/platform/toolkit/debug-local?tabs=Windows&pivots=vi...) does not work either. The installations are still empty and no message is sent.

@BarneyGood -We have tried the Notification bot.It is working fine from our end.
 Microsoft Teams Version 1.5.00.31029 
Please follow the steps which are mention in below document-
Build notification bot with JavaScript - Teams | Microsoft Learn
chatnotbot.pngteamsnotbot.png

Actually, when running in debug mode the bot the 3rd step ((3/5) Updating the bot messaging endpoint ...) fails: "MessageEndpointUpdatingError: Failed to update message endpoint with https://3384-46-193-104-169.ngrok.io/api/messages". Even though it created the tunnel with ngrok it doesn't work.
In the bot settings (accessed through https://dev.botframework.com/bots), I added the microsoft mail of the teamsappstudio in the owner section.

To clarify a few things, the tutorial you sent me works (https://learn.microsoft.com/en-us/microsoftteams/platform/sbs-gs-notificationbot?tabs=vscode). However, it does not work when I try to use my own bot instead of the one created by default. When I try to use my own bot, I get the error previously mentioned "MessageEndpointUpdatingError: Failed to update message endpoint with https://<ngrok_url>/api/messages".
Besides if I try to upload a custom manifest with my bot credentials to teams (upload custom app), run the bot with node locally and trigger the messages it does not work (the bot does not detect any installations). Probably I'm doing something wrong either in Azure, in the manifest or just the generic testing methodology.

@BarneyGood- We will try it with our own bot and let you know the update.
I managed to use my own bot by running the node app locally and creating a tunnel with ngrok. The message endpoint on the bot framework was not the right one, but it works now !
I have one more question. Is it possible to use the bot in another teams organization ? The bot would be hosted on my company's Azure, but it would be used by external clients whom we would give the manifest so they can add the bot to their organization. But they would not have to interact with the bot framework or Azure in any way.
best response confirmed by BarneyGood (Copper Contributor)
Solution

@BarneyGood 

If you want to external users are interacting with your Azure, you need to use multi-tenant during app registration in the Azure portal.

Multi-tenant apps are available to users in both their home tenant and other tenants.

The multi-tenant organization is what enables the Azure Bot Service servers (in the botframework.com tenant) to authenticate requests coming from the bot (registered in the customer's tenant) through our servers. It's part of our service-to-service authentication protocol. it is not used for other purposes, and not to have any claims added to it for other access.

 

Reference Doc-

Best practices for multi-tenant apps

Thanks, 

Sayali

----------------------------------------------------------------------------

If the response is helpful, please click "**Mark as Best Response**" and like it. You can share your feedback via Microsoft Teams Developer Feedback link. 

@BarneyGood -Could you please share your feedback via Microsoft Teams Developer Feedback link. 

@BarneyGood how did you manage to do it? i also encounter similar issue. for some reason there is no installations or member 

1 best response

Accepted Solutions
best response confirmed by BarneyGood (Copper Contributor)
Solution

@BarneyGood 

If you want to external users are interacting with your Azure, you need to use multi-tenant during app registration in the Azure portal.

Multi-tenant apps are available to users in both their home tenant and other tenants.

The multi-tenant organization is what enables the Azure Bot Service servers (in the botframework.com tenant) to authenticate requests coming from the bot (registered in the customer's tenant) through our servers. It's part of our service-to-service authentication protocol. it is not used for other purposes, and not to have any claims added to it for other access.

 

Reference Doc-

Best practices for multi-tenant apps

Thanks, 

Sayali

----------------------------------------------------------------------------

If the response is helpful, please click "**Mark as Best Response**" and like it. You can share your feedback via Microsoft Teams Developer Feedback link. 

View solution in original post