macOS sample project not working

I have downloaded the macOS SDK and am trying to build it with xcode 10.3 (although I have also tried the latest 10.11 xcode and have the same issue)

The instructions at https://marketplace.zoom.us/docs/sdk/native-sdks/macos appear to be very very out of date since there no longer appear to be any of the specified keys in the code, it appears that all the settings can be entered through the sample app.

Currently the app builds and runs without issue, however shortly after hitting “set domain” I get the error “Error: Send error, 60 Operation timed out”, I am then prompted to set the JWT token (I don’t have an option to use the SDK key/secret at all), but pressing “OK” once entering the JWT token simply results in nothing happening - I assume that there is an issue with the network connectivity or something, but I’m not sure where.

Are there any updated instructions for getting this sample working?

Note that to try fixing this I have tried deactivating and reactivating my app (as suggested in a post regarding what sounds like the same issue with the electron SDK)

Any help appreciated!

Thanks

Richard

To add to this I think this is partly me being dumb - I had created a “JWT” app rather than an “SDK” app, I have now created an SDK app, and attempted to create a web token through jwt.io - now when I enter that token something happens (which seems good) however that something is that I get “Connect failed” “Unknown Error” -

I am not clear whether this is an issue with my token or an issue with my connection.

My JWT payload is below for reference

{
“appKey”: “xxxx”,
“iat”: 1594593840,
“exp”: 2516239022,
“tokenExp”: 2516239022
}

with the signature defined as:
HMACSHA256(
base64UrlEncode(header) + “.” +
base64UrlEncode(payload),
secretHereNoQuotes
)

Sorry - stil being dumb. It’s working now. I realised that the “share” button on jwt.io does not actually share the JWT encoded signature but rather a link to it. Duh.

I have managed to then log into my zoom account, however now neither the “video meeting” or “audio meeting” buttons do anything, and if I select “join” nothing happens after entering some meeting details…

OK, sorry - this has become a stream of consciousness. turns out that in the current macos SDK version the “domain” isn’t auto-filled to https://zoom.us (even though that is the placeholder), there is no error but without manually filling that in the calls can’t connect. Obviously easy for me to fix now I know the issue, but slightly annoying!

Hello @richard1 ,
I am currently going through this process as well.
Can you pls be more specific how to get sample app working?
I am asking about differences between SDK and JWT app - the sample app only shows JWT input for me (domain and then JTW), so I’ve created native JTW app in zoom marketplace.
I fill the domain in UI with https://zoom.us and pass the JWT token from zoom marketplace, with error response 1 -> ZoomSDKError_Failed

When trying to replicate your method, I am missing params line iat. Exp and tokenExp are self-explainatory.
Please share your full process, because as you mentioned earlier - zoom documentation is not in sync with current SDK version.
Thank you very much!

Hello

So things I did wrong:

1/ You need to create an “SDK application” not a “JWT application” - even though the application needs a JWT token
2/ You need to then copy the key and secret from your app page and put them into the creator at jwt.io, you then need to edit the payload data to include the iat line (which should be the creation date of the token, so generate a timestamp of now) along with the exp (an expiry date, I set it to 50 years), and the tokenExp which I set to the same as the exp for now. You then add in the secret and copy the signature (do not use the share button)

This then worked for me - good luck!

2 Likes

@richard1 thanks a lot!
It worked and brought me closer :slight_smile:

Hi Richard,

Thanks for the post and the follow-up info. Yes, using the SDK requires a SDK key/secret.

Good catch! I will forward this feedback to the engineering team and ask them to change this.

Let me know if any other questions. Thanks!

Hi @mchrenko,

In order to generate a JWT token for SDK, you will need to create an SDK app on Marketplace, you may refer to the instruction here: https://marketplace.zoom.us/docs/guides/build/sdk-app.

Once you have the SDK key/secret, you may generate the JWT token with the following instruction: https://github.com/zoom/zoom-sdk-macos/blob/master/CHANGELOG.md#new-sdk-initialization-method-using-jwt-token

Hope this helps. Thanks!

Hi @carson.zoom,

I also gone through the same process for running sample zoom SDK app.

  • Downloaded zoom sdk zip file for macOS from git repo - https://github.com/zoom/zoom-sdk-macos
  • Placed the ZoomSDK folder in the same directory as the ZoomSDKSample.xcodeproj file.
  • Launched the ZoomSDKSample.xcodeproj file in Xcode
  • Built app successfully and emulator is running.

I entered the domain as https://zoom.us and clicked on Set domain button.
I’m using app key and secret of SDK app created by zoom developer pro account.
And generated jwt token as described in latest changelog.

But I’m not able to authenticate with the JWT token generated from https://jwt.io
No error is displayed on emulator app…and nothing changes on emulator screen.

I tried debugging the code also but I guess I’m not getting auth response from zoom auth service.
I’m not much familiar with Objective C but the callback onZoomSDKAuthReturn is not getting called.

Not able to find out what I’m missing.

My Mac version - macOS Mojave(10.14.6)
Zoom macOS SDK version - v5.0.24433.0616
Xcode version - 10.3

Hi @samadhan.madane31,

Thanks for the post. Are you getting any error codes? Could you provide any logs for further investigation?

Thanks!

Hello, I have the exact same issue as this. Did this get resolved.
I press Auth and nothing happens.

This is surprisingly the only log I see ( nothing else gets logged for some reason )
2023-04-22 18:27:42.066052+0800 ZoomSDKSample_universal[85512:22230339] Metal API Validation Enabled

This is how I am generating my token:

import time
import datetime
import jwt
iat = int(time.time())
exp = (datetime.datetime.today() + datetime.timedelta(days=2)).strftime("%s")
tokenExp = (datetime.datetime.today() + datetime.timedelta(hours=1)).strftime("%s")

payload = {
    'appKey': "",
    'iat': iat,
    'exp': exp,
    'tokenExp': tokenExp
}
encoded = jwt.encode(payload, "", algorithm='HS256')
print(encoded)

Hello, you should check that you are setting the domain to zoom.us - from memory there was an issue that the sdk demo app shows the default domain as a greyed out placeholder, and you need to either type it into the box or set it via [sdk setZoomDomain:kZoomSDKDomain]; before initialising the SDK

You also may want to check for errors on the response to each step - the sample app doesn’t do a great job of exposing these errors when they occur so you would want to check the return value of each call is retruning no error (0) to work out where the problem is occuring

hi @richard1, thank you for replying.
I see the domain being set properly.
I also debugged line by line.
But the app reaches the auth screen, takes in my jwt token, and does nothing with it.
@donte.zoom → can help here please. Have been trying for a while.

@nevaty,

Happy to help! It looks like this thread is old. To start, can you create a new post and tag me there?

For troubleshooting steps on getting started with macOS Meeting SDK v5.14.6.17875, please see this post :