# Zoom Apps for Shared Zoom Rooms Shared Zoom Rooms are Zoom Room devices that are shared by users in an organization and support touch interactions. Zoom Apps enable your apps to call [Zoom Apps APIs](https://appssdk.zoom.us/classes/ZoomSdk.ZoomSdk.html) and [Zoom REST APIs](/docs/api). Zoom Apps for Shared Zoom Rooms allow developers to make their desktop apps available on large Zoom Rooms touch devices for group collaboration. For more information about Shared Zoom Rooms, see [Getting Started with Zoom Rooms](https://support.zoom.us/hc/en-us/articles/207483343-Getting-started-with-Zoom-Rooms). ## Create Zoom Apps for Shared Zoom Rooms ## Prerequisites - You have a [Zoom account](https://zoom.us/). - Zoom Apps SDK 0.16.8 or higher. - Zoom Rooms client 5.13.1 or later. - Zoom Desktop client 5.13 or later. - You have read [Key Concepts](/docs/platform/key-concepts/). - You have a Zoom account. - You are either the Zoom account owner, account admin, or have been assigned the **Zoom for developers** role. - The administrator has enabled _view_ and _edit_ permissions for the **Zoom for developers** role. To enable permissions for roles, log into the Zoom web portal and go to **User Management** > **Roles** > **Role Settings** > **Advanced features**, and select the **View** and **Edit** checkboxes for **Zoom for developers**. For more information, see [Using role management](https://support.zoom.us/hc/en-us/articles/115001078646). ![](/img/UBF-role-prerequisite.png) ## Enable developer tools By default, developer tools are disabled in the Zoom Client. To enable them, set `webview.context.menu` to `true` before launching the Zoom Client. **Note:** You must restart the Zoom app. **On Windows**: Add the following to the `zoom.us.ini` file. This file is located in the `%appdata%/Zoom/data` directory. ```ini [ZoomChat] webview.context.menu=true ``` **On Mac** : ```shell defaults write ZoomChat webview.context.menu true ``` --- ## Process 1. Log into the Zoom Marketplace and select to build a general (OAuth) app. 2. Enter or update basic app information such as the app name, access type, and OAuth. 3. Select the Zoom products and features that the app works with. 4. Select the Zoom API methods (scopes) the app uses to interact with the Zoom platform. 5. Preview your app and test it with internal users. --- ## Step 1: Build an OAuth app 1. Log onto the Zoom App Marketplace. 2. Click **Develop** > **Build App**. ![](/img/UBF-app-create1.png) ## Step 2: Maintain basic information On the **Basic Info** page, add or update information about the app such as the app's name, how the app is managed, app credentials, and OAuth information. 1. Update your app's name. By default, the build flow generates a generic name for your app. To change your app's name, select the edit icon (pencil) and update the name. To save your changes, click anywhere outside of the app name field. ![](/img/UBF-app-name.png) 2. In the **Select how the app is managed** section, select **user-managed**. 3. **App Credentials** - The build flow automatically generates app credentials (client ID & client secret) for your app. App credentials for development differ from app credentials for production. - Use development credentials while you are building and testing your app. - Use production credentials once you are ready to publish your app on the Marketplace. 4. In the **OAuth Information** section, set up OAuth for your app. - **OAuth redirect URL (required)**: Enter your development redirect URL or endpoint to set up OAuth between your app and Zoom. - **Use Strict Mode URL (optional)**: Allow only the redirects that exactly match the valid OAuth redirect URLs. - **Subdomain check (optional)**: Only allow the redirects that exactly match the subdomain of the valid OAuth redirect URLs. - **OAuth allow lists (required)**: Add any unique URLs that Zoom should allow as valid redirects for your OAuth flows. This additional security measure ensures that users are only redirected to the pre-approved endpoints you provided. Include either the complete URL (https://subdomain.domain.tld/path/to/oauth/callback) or the base URL without the path and/or query parameters (https://subdomain.domain.tld). ## Step 3: Select Zoom products and features On the **Features** page, go to the **Surface** tab. 1. In the **Select where to use your app** section, select **Rooms** and **Meetings**. ![](/img/Shared-zoom-room-surfaces.png) > **Option** > > Selecting **Meetings** is optional. You select **Meetings** to make **guest mode** available. Including guest mode in your app enables admins to install it from the admin portal and users to open it directly on the surface rather than casting it from the desktop. If you want to only cast it, you don't need to select **Meetings** or **guest mode**. 2. In the **Home URL** and **Domain Allow List** fields provide a URL to your app's home page and add URLs you want the Zoom client to accept. 3. In the **In-client app features** section, select the Zoom features available to your app users in the Zoom client. If your app needs to use the [Zoom App SDK](https://appssdk.zoom.us/classes/ZoomSdk.ZoomSdk.html), enable **Zoom App SDK** and select **Add APIs** to add APIs and events. 4. (optional) Enable **Guest Mode**. Guest mode enables admins to install your shared Zoom Room app from the admin portal and for users to open it directly on the surface rather than casting it from the desktop. If you want users to only cast your app, you can skip this step. For more information, see [Guest Mode](/docs/zoom-apps/guides/guest-mode/). ![](/img/Shared-zoom-room-guestmode.png) 5. In the **Zoom Client Support** section: 1. Enable **Mobile**. ![](/img/UBF-mobile.png) 1. Select the **In-app Purchase Restrictions**. 1. Input the **Apple Developer Program Team ID**. (If needed.) 1. Enable **Zoom Rooms** and then select **Shared Zoom Rooms (Touch Devices)**. ![](/img/zoom-apps-shared-zr.png) ## Step 4: Select scopes (API methods) Scopes define the API endpoints and methods that your app is allowed to use in order to access specified resources for your users. This defines which information and capabilities are available to your user. On the **Scopes** page, select the Zoom API methods your app is allowed to call. 1. Select **Add Scopes**. 2. Select the Zoom product and check the desired scopes, then select **Done**. There are two scopes specific to Zoom Apps: 1. `zoomapp:inmeeting` to make the app available in Meetings. 2. `zoomapp:inwebinar` to make the app available in Webinars. For more information about scopes, see [OAuth scopes](/docs/internal-apps/oauth-scopes/). 3. In the **Scope Description** field, explain how the requested scope is necessary for your app. > When you add a scope, you are actually submitting a request to the Zoom Security Review team to allow your app to access specific Zoom API endpoints. A key principle in Zoom security practice is minimal access. If the Zoom Security Review team determines the requested scope is not necessary for your app, they may reject the scope request. ## Step 5: Test and preview your app On the **Local Test** page, add and preview your app and share it with internal users. **To add** the app for your own account, select **Add App Now** and then **Allow**. **To see** a summary of your app's details and a preview of your app's listing page on the Zoom App Marketplace, select **Preview Your App Listing Page**. > For security reasons, we limit the sharing of beta apps. We don't allow beta apps to be published to the Zoom Marketplace, and we allow beta app access only to members of the developer's Zoom account. To share your app with other users on your account, go to the **Authorization URL** section, and select **Generate** and then **Copy**. ## Step 6: Download and Install Zoom Apps SDK Download and install the [Zoom Apps SDK](https://appssdk.zoom.us/classes/ZoomSdk.ZoomSdk.html). ## Step 7: Get the app context token The app context token in the client expires every 5 minutes. You must use the [getAppContext](https://appssdk.zoom.us/classes/ZoomSdk.ZoomSdk.html#getAppContext) method in your app to get the latest app context token from the client. For more information, see [Zoom Apps Context](/docs/zoom-apps/zoom-app-context/). ## Step 8: Get the product information Your product may be designed to work with several Zoom products (mobile, personalZoomRoom, sharedZoomRoom) . To inform your app which product it is running on, use the [zoomSdk.config()](https://appssdk.zoom.us/classes/ZoomSdk.ZoomSdk.html#config) method to get the 'product' parameter. > **Note** > > The documentation for the 'config' method may not list the 'product' parameter. --- ## Test apps for Shared Zoom Rooms ### Test installed apps 1. Navigate to your admin portal and go to **Admin** > **Room Management** > **Zoom Rooms**. 2. Select the room, location, group, or account you want to add the Zoom App to, and then navigate to the level's settings. 3. Select **Zoom Apps** > **Zoom Room Apps**. 4. In the dropdown menu, select **User Apps**. 5. IF your app is not yet published on the Marketplace, select **Internal Apps**. If your app is published to the Marketplace, select **Public Apps**. ![](/img/Shared-zoom-room-app-test1.png) 6. If your app supports Zoom Rooms and Guest Mode, it is displayed in the list of apps. Use the toggle on the right to install the app on the desired room, location, group, or account. 7. To verify the app is installed, go to your Zoom Room device. You should see an **Apps** icon. Click the icon to see your installed app. ![](/img/Shared-zoom-room-app-test3.png) ### Test transferring your app from desktop to Zoom Room 1. To pair your desktop client to the Shared Zoom Room, click the pairing icon. ![](/img/za-src-pairing-icon.png) 2. Once paired, navigate to the available apps and click the app you want to open. 3. When prompted with _Where do you want to open \_\_\_ app?_, select the Zoom room. 4. The Zoom Room displays a prompt to **Open a Zoom App**. Choose **Open**. --- ## Resources - [Sample Reference Zoom Apps](/docs/zoom-apps/reference-apps) - [Build flow overview](/docs/build-flow/) - [Create general apps](/docs/build-flow/create-oauth-apps/) - [Submit apps for review](/docs/build-flow/submitting-apps-for-review/) - [Publish your apps](docs/distribute/app-submission/submit-apps-review/) - [Persistent info](/docs/build-flow/persistent-app-info/)