startMeeting method
Future<List>
startMeeting({
- required String clientId,
- required String clientSecret,
- required String accountId,
- required MeetingOptions meetingOptions,
override
Start Meeting Function for Zoom Web
Implementation
@override
Future<List> startMeeting(
{required String clientId,
required String clientSecret,
required String accountId,
required MeetingOptions meetingOptions}) async {
final Completer<List> completer = Completer();
String jwtSignature = jwtGenerator.generate(
key: zoomoptions.clientId ?? "",
secret: zoomoptions.clientSecert ?? "",
meetingId: int.tryParse(meetingOptions.meetingId ?? "") ?? 0,
role: meetingOptions.userType ?? "1");
// Instantiate ZoomProvider and ZoomRepository
final ZoomProvider zoomProvider = ZoomProvider();
final ZoomRepository repository =
ZoomRepository(zoomProvider: zoomProvider);
// Fetch access token
final AccessTokenModel accessTokenResponse =
await repository.fetchAccesstoken(
accountId: accountId,
clientId: clientId,
clientSecret: clientSecret,
);
// Fetch zak token
final String zakTokenResponse = await repository.fetchZaktoken(
clientId: clientId,
clientSecret: clientSecret,
accessToken: accessTokenResponse.accessToken,
);
ZoomMtg.join(JoinParams(
meetingNumber: meetingOptions.meetingId,
userName: meetingOptions.displayName ?? meetingOptions.userId,
signature: jwtSignature,
sdkKey: zoomoptions.clientId,
passWord: meetingOptions.meetingPassword,
zak: zakTokenResponse,
success: allowInterop((var res) {
completer.complete(["MEETING STATUS", "SUCCESS"]);
}),
error: allowInterop((var res) {
completer.complete(["MEETING STATUS", "FAILED"]);
})));
return ["MEETING STATUS", "Working"];
}