Best way to add and update a custom to client's MS teams app.

Copper Contributor

Greeting everyone!

I work at a SaaS company and we have a multi tenant architecture where every client hosts their own instance of the product and the data. We don't have a common database or server. We're working on building an MS teams integration for the same more specifically a bot that responds to certain commands and does proactive messaging.

Extra info
We don't have common messaging endpoint for the bot (Multi tenant architecture). and for some security reasons we cannot create a common endpoint to reroute the incoming request as well to the correct route.

My 2 questions are:

1. What's the best way to achieve this - Installing and updating a custom app with minimum to no help from client's IT/Admin team.
2. Is there any post request where we can send the .zip app package and make it work? We were going through this - Publish an app using graph API.  Is there any easy way of getting Authorization bearer token here required for the header (Not all of our clients are tech savvy).

Thanks in advance :)

2 Replies

@RishavKatoch - Thanks for reporting your issue.
We will check, If Is there any other easy way to do this and get back to you.

@RishavKatoch -

  1.There are two ways to publish a custom app and the way that you use depends on how you get the app. To publish a custom app by uploading an app package (in .zip format)that a developer sends you. The other method, approving a custom app, is used when a developer submits an app directly to the Manage apps page through the Teams App Submission API.
When you publish a custom Teams app, it's available to users in your organization's app store.

2.The access token contains information about your app and the permissions it has to access the resources and APIs available through Microsoft Graph. To get an access token, your app must be registered with the Microsoft identity platform and be authorized by either a user or an administrator to access the Microsoft Graph resources it needs.

Graph API- 


Content-Type: application/x-www-form-urlencoded

client_id=535fb089-9ff3-47b6-9bfb-4f1264799865 & &client_secret=sampleCredentia1s &grant_type=client_credentials