Hi, the customer have issue when generating JWT token to be used with meeting SDK for android and IOS. when pass the JWT token to sdk and onZoomSDKInitializeResult
return error code= 5 ,this error mean ZOOM_ERROR_AUTHRET_TOKENWRONG in sdk. when trying to decode the token in JWT.io all values are correct
Zoom sdk integration and steps
1- Open Appointments Page.
2-Call ‘getaccountsetting’ Api
3-Get the jwtoken returned from above api ,pass it to sdk and onZoomSDKInitializeResult
return error code= 5 ,this error mean ZOOM_ERROR_AUTHRET_TOKENWRONG in sdk.
4-Click on the Join Button.
5-Call Generate AccessToken Api from zoom api
“https://zoom.us/oauth/token?grant_type=account_credentials&account_id”.
6-Call 'getzoomtelemeetingurl’Api to get zoom Meeting Id.
7-Passing the access token to '‘zoomAccessToken’ ’ param in sdk and meeting id in
'meetingNo’Param then start meeting .
here is the Java code used to generate the JWT Token:
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.impl.TextCodec;
import java.security.Key;
import java.time.Instant;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;
import org.json.JSONObject;
public class Token {
public static void main(String[] args) {
String key = "Uses_SDK_Client_ID_Here";
String secret ="Uses_SDK_Client_Secret_Here";
int meetingNumber = 123456789;
long iat = (System.currentTimeMillis()/1000);
long exp = iat + 60*60*2;
Map<String, Object> header1 = new HashMap<>();
header1.put("alg", "HS256");
header1.put("typ", "JWT");
JSONObject payload = new JSONObject();
// payload.put("sdkKey", key);
payload.put("appKey", key);
// payload.put("mn", meetingNumber);
payload.put("iat", iat);
payload.put("exp", exp);
payload.put("tokenExp", exp);
String sPayload = payload.toString();
String sdkJWT = Jwts.builder()
.setHeader(header1)
.setPayload(sPayload)
.signWith(SignatureAlgorithm.HS256, secret)
.compact();
System.out.println("SDK JWT: " + sdkJWT);
}
}