Description
I am implementing the new On-Behalf Token (OBF) flow for a macOS Meeting SDK application.
Our architecture is:
- Producer (Host)
- Talent (Participant)
- Studio App (Meeting SDK application using Customized UI)
The Studio App joins as a third participant to receive audio/video. After the OBF enforcement, the app can successfully join meetings hosted by the same Zoom account that owns the Marketplace app, but fails to join meetings hosted by any other Zoom account.
I have already implemented OAuth, added the user:read:token scope, and can successfully retrieve an OBF token.
However, I cannot find how to pass the OBF token to the macOS Meeting SDK.
The current documentation references JoinMeetingParam4WithoutLogin.onBehalfToken (Windows/Linux/Web), but the macOS SDK I am using only exposes ZoomSDKJoinMeetingElements, which does not contain an onBehalfToken property.
How should an OBF token be supplied when joining a meeting using the macOS Meeting SDK?
Which macOS Meeting SDK version?
- 6.5.5 (60068)
- Also tested with 6.0.2 (33510)
To Reproduce:
- Create a Published and Active Meeting SDK application.
- Implement OAuth authorization.
- Add the
user:read:tokenscope. - Obtain an OAuth access token.
- Request an OBF token using:
GET /v2/users/me/token?type=onbehalf
(or /users/{userId}/token?type=onbehalf)
- Join a meeting using
ZoomSDKJoinMeetingElements. - Observe that:
- Meetings hosted by the Marketplace app owner’s account join successfully.
- Meetings hosted by another Zoom account immediately transition through:
Connecting
Failed
Disconnecting
Ended
Additionally, I cannot find any API in the macOS SDK to provide the retrieved OBF token.
**
Logs
- Result: ZoomSDKError(rawValue: 0) | 0
- Zoom State ZoomSDKMeetingStatus(rawValue: 1)
- Zoom Error ZoomSDKMeetingError(rawValue: 101)
- Zoom Reason: EndMeetingReason(rawValue: 0)
- Zoom State ZoomSDKMeetingStatus(rawValue: 6)
- Zoom Error ZoomSDKMeetingError(rawValue: 100)
- Zoom Reason: EndMeetingReason(rawValue: 0)
- Zoom State ZoomSDKMeetingStatus(rawValue: 4)
- Zoom Error ZoomSDKMeetingError(rawValue: 101)
- Zoom Reason: EndMeetingReason(rawValue: 0)
- Zoom State ZoomSDKMeetingStatus(rawValue: 7)
- Zoom Error ZoomSDKMeetingError(rawValue: 101)
- Zoom Reason: EndMeetingReason(rawValue: 0)
Troubleshooting Routes**
- Tested with the official macOS Meeting SDK sample application.
- Tested using the Zoom Test SDK JWT Generator.
- Verified that SDK authentication succeeds.
- Verified that
joinMeeting()returnsZoomSDKError_Success. - Implemented OAuth authorization.
- Added the
user:read:tokenscope. - Successfully retrieved an OBF token from the REST API.
- Verified the Marketplace app is Published and Active.
- Tested with both SDK versions 6.5.5 and 6.0.2.
- Searched the SDK headers for
JoinMeetingParam4WithoutLogin,onBehalfToken, and related APIs, but they do not exist. - Attempted to use the retrieved OBF token in existing properties such as
zak,join_token, andappPrivilegeToken, but the meeting still fails. I understand these may not be the correct properties, which is why I’m asking how OBF should be passed on macOS.
Device
- Device: Apple MacBook Pro
- Architecture: Apple Silicon
OS
- macOS Sequoia

