Why do you think you need to make client-id and secret dynamic? Typically, an app developer owns the app’s client-id and secret and app users don’t need to worry about them.
A marketplace public app used by many customers can work with one client-id and secret that is created by you as a developer with Zoom. There are many such apps in the marketplace today. You will not require a different id and secret for each customer.
I hope you have tried referring to the article@Thakur_Ganeshsingh shared above. It has all the answers you need, including how to setup your app for agent-level OAuth. Please give it a shot and let us know.
You need to create the app in zoom marketplace and get it approved on zoom marketplace. then anyone can install the app using agent OAuth on the Freshdesk side.
Please refer to the article about zoom marketplace submission.
Zoom Marketplace APP isssue:
The zoom has changed its authorization from JWT to OAuth.
For JWT, we can use client id and secret from our account, and it used to work for all the customers.
But for OAuth, as per the zoom instructions, the client id and secret should be different for each and every account.
Solution:
To resolve this issue, we used a custom APP approach for now, using customer’s client id and secret.
The oauth_config.json page used to look like this if we use client id and secret statically and the APP works as expected.
Requirement for updating the Zoom Marketplace APP:
Customer need to enter the client id and secret after creating an application to their zoom account using “https://oauth.freshdev.io/auth/callback” as a redirect URL
The APP should work for agent level not to an account level
The issue in oauth_config.json:
It supports only account level if we try to use the dynamic selection of the client id and secret.
I have already shared the source code in the above trail for reference.
For dynamic selection of client id and secret (agent level), we used to get the below error.
The client_id and client_secret cannot be dynamically fetched from the OAuth iparams for agent-level OAuth. This OAuth iparams are provided by the customer when they install/update the app. It is also stored only one set of value per app. So, it will be provided by one of the admin user of the account.
For agent-level OAuth, each agent’s input has to be stored and it has to be provided in app rendering location. This is not possible before and now. We haven’t received this feedback from anyone before and we can take it as a feature request for this if it is required for Zoom integration.
About the requirement for dynamic OAuth configuration, could you please share us any documentation or any inputs on why does it not work with configuration from your account to accept agent-level OAuth for any customer? Ideally, it works with other third-parties like GitHub that I have used before.
I have created a video for the zoom app integration which includes the issue, limitation from the Freshworks side, resolution we have provided to the customer and the changes made from the Zoom side.
Please let me know if you need any more information.
I went through the video that you shared, Akhil I have the following questions:
In the custom app model you’ve shared, are the client ID and client secret statically created as a user-managed app on zoom’s side and marked type agent within the Freshworks app?
Hypothetically, What drawbacks do you see if OAuth Config within Freshworks app is marked at type: "account" but the app is given a client ID and a secret generated by created user-managed app in Zoom?
In the custom app model you’ve shared, are the client ID and client secret statically created as a user-managed app on zoom’s side and marked type agent within the Freshworks app? – >> yes, that is correct
Hypothetically, What drawbacks do you see if OAuth Config within Freshworks app is marked at type: "account" but the app is given a client ID and a secret generated by created user-managed app in Zoom? – >> If we use account level zoom integration, all the zoom meetings will be created under only one person’s account.
I have explained it in the video recording as well.
I have set up 30 mins slot for tomorrow as per your availability, to go over the app use case, assumptions, and implementation details. @Akhil_Kulkarni, kindly test what @Saif mentioned meanwhile so that we don’t have any surprises for tomorrow.
It seems like if the config type is “account” but given zoom’s user-managed credentials to the app, app will only ask for OAuth at install time. In that case, this my suggested workaround is still not helpful.