gakkai
(TANAKA Hidemune)
April 20, 2021, 2:34am
1
Description
Zoom Web Client SDKを用いて、ウェビナーに参加したいと考えています。
「すでに他のミーティングが始まっています。」とのメッセージが表示されますが、実際の動作を見ると、指定したミーティングは終了しておらず、Zoom側ではE-Mailの指定にもかかわらず、アドレスを認識できていないようでした。
調べたところエラーコードは3000。Web上で把握できた「ウェビナーにはEメールアドレスが必要です」も、エラーコードは3000です。
Error
「すでに他のミーティングが始まっています。」
Which Web Client SDK version?
zoom-meeting-1.9.1.min.js
To Reproduce(If applicable)
Steps to reproduce the behavior:
以下のようなPythonコードでmeeting.htmlを呼び出していますが、メールアドレスを認識してくれないようです。
Zoomミーティングの入室ログには、メールアドレスは空欄で出力されました。
membername = base64.b64encode(membername.encode()).decode(‘utf-8’)
mailadress = base64.b64encode(mailadress.encode()).decode(‘utf-8’)
paraS=’?name=’ + membername + ‘&email=’ + mailadress + ‘&mn=’ + mn + ‘&pwd=’ + pw + ‘&role=0&lang=jp-JP&signature=’ + body.decode(‘utf-8’).strip() + ‘&china=0&apiKey=’ + key
Screenshots
Device :
Device: [PC]
OS: [Windows10]
Browser: [Firefox]
Browser Version [87.0 (64bit)]
Additional context
質問1:
エラーメッセージの表示では、「すでに他のミーティングが始まっています。」となっていますが、現実にはミーティングは続いています。
この現象の原因には、何が考えられるでしょうか?
質問2:
メールアドレスをmeeting.htmlに正しく渡すには、どのようにすれば良いかご教示ください。
MaxM
(Max M.)
April 20, 2021, 8:51pm
2
Hey @gakkai ,
私は日本語が話せないので英語で返答します。 それほど問題ないことを願っています。
Thank you for reaching out to the Zoom Developer Forum. First, when you end the first Webinar, I would make sure that you are clicking the “End” button otherwise you may see a delay before Zoom ends the Webinar internally. This delay is by design to allow for intermittent network issues.
That should avoid the issues with seeing the error “Another meeting is already in progress”.
When it comes to adding the User Email, you’ll want to capture it from the user input and pass it to the Zoommtg.join() function. We have an example of this in our Sample Web App :
success: function () {
console.log(meetingConfig);
console.log("signature", signature);
ZoomMtg.i18n.load(meetingConfig.lang);
ZoomMtg.i18n.reload(meetingConfig.lang);
ZoomMtg.join({
meetingNumber: meetingConfig.meetingNumber,
userName: meetingConfig.userName,
signature: signature,
apiKey: meetingConfig.apiKey,
userEmail: meetingConfig.userEmail,
passWord: meetingConfig.passWord,
success: function (res) {
console.log("join meeting success");
console.log("get attendeelist");
ZoomMtg.getAttendeeslist({});
ZoomMtg.getCurrentUser({
success: function (res) {
console.log("success getCurrentUser", res.result.currentUser);
},
});
Let me know if that helps!
Thanks,
Max
gakkai
(TANAKA Hidemune)
April 21, 2021, 12:14am
3
返信ありがとうございます。
ご指示の通りに、ウェビナーを一度停止して、再度開始しても、やはり「すでに他のミーティングが始まっています」のエラーが出ます。
添付はブラウザのコンソールの表示です。
「XMLパースエラー: 整形式になっていません」という、エラー表示が気になります。
ソースマップエラー: Error: request failed with status 403
リソース URL: https://source.zoom.us/1.9.1/lib/webim.min.js
ソースマップ URL: webim.min.js.map
上記のメッセージは、「エラーメッセージを正しく取得できていない」ことを意味しますか?
解決策をご教示ください。
gakkai
(TANAKA Hidemune)
April 22, 2021, 12:55am
4
前の投稿のスクリーンショットの、以下のエラーメッセージについてです。
【Error Message】
XML パースエラー: 整形式になっていません。
URL: https://rwcty.ty.zoom.us/wc/ping/85382348259?ts=1619052425000&auth=01MWsyuVigKkcW***&rwcToken=lXVFi4o2Hey4DPWko0TKRC8d-***&dmz=1
行番号: 1, 列番号: 1:
ブラウザのコンソールには、
「XMLパースエラー」と表示されていますが、内容を見ると、以下の通りJson形式になっています。
【実際の内容】
{“rwg”:“zoomap541503631rwg.cloud.zoom.us ”,“rwcAuth”:“MTYxOTA1MjUwODM4NS7kimg3m-3skrJ7vBZ0***”}
こちらについても、解決方法があればご教示ください。
MaxM
(Max M.)
April 22, 2021, 1:05am
5
Hey @gakkai ,
Thank you for the update. Please make sure that you are not using a Proxy, VPN or a Firewall that could be blocking the connection to the Zoom servers in order for the Web SDK to operate.
Thanks,
Max
gakkai
(TANAKA Hidemune)
April 22, 2021, 1:10am
6
返信ありがとうございます。
プロキシ、VPNは使用していません。
Zoom Video Conference のFireWall設定は、Private,Publicとも「許可」になっています。
MaxM
(Max M.)
April 22, 2021, 10:00pm
7
Hey @gakkai ,
Thank you for confirming. I’m thinking this is something that our engineering team will have to investigate but I want to make sure that we cover all our bases first.
Please test with our Sample Web App and let me know if you are seeing these same issue.
If you aren’t seeing the same issues, we can look into how the implementation may be a factor.
Thanks,
Max
gakkai
(TANAKA Hidemune)
April 23, 2021, 12:41am
8
問題が起きているのは、
2021年3月17日版のSample Web Appです。
その「meeting.html」に対し、適切なパラメータで呼び出しているはずです。
最新版をダウンロードして、
再度確認してみます。
gakkai
(TANAKA Hidemune)
April 23, 2021, 12:50am
9
補足です。
meeting.js の以下の2行をコメントアウトして得られたエラーメッセージを添付します。
//ZoomMtg.i18n.load(meetingConfig.lang);
//ZoomMtg.i18n.reload(meetingConfig.lang);
Joining webinar timeout
Your connection has timed out and you cannot join the webinar. Verify your network connectivity and try again.
gakkai
(TANAKA Hidemune)
April 23, 2021, 2:41am
10
すみません。重複したリクエストを、「developersupport@zoom.us」宛に投げてしまいました。「[REDACTED]」からのメールです。
こちらで回答頂ければと思います。
重複したメールの内容をここに再度投稿します。
Web App Sample を使用して、自作のPythonの signature generation を使用して
ウェビナーに参加しようとしています。
その際に、以下のエラーが発生しました。
調査をお願いできますでしょうか?
【エラーの内容】
Joining webinar timeout
Your connection has timed out and you cannot join the webinar. Verify your network connectivity and try again.
[REDACTED]
MaxM
(Max M.)
April 23, 2021, 10:07pm
11
Hey @gakkai ,
I can see that Will has picked up the ticket you submitted. Please follow up with him there as I would have the same questions for you. You’re in good hands with Will and I can see that he is actively investigating the issue.
Let me know if you have any questions.
Thanks,
Max
gakkai
(TANAKA Hidemune)
April 26, 2021, 2:04am
12
この問題の本質は、JavaとPythonの暗号化の結果が一致しないことによるものでしょうか?
http://nori3tsu.hatenablog.com/entry/2013/10/01/012130
Pythonの実装例を参考に、私も調査してみます。
gakkai
(TANAKA Hidemune)
April 26, 2021, 2:46am
13
こちらも参考になりそうですのでここに書いておきます。
gakkai
(TANAKA Hidemune)
April 26, 2021, 6:57am
14
私の上記の予想に反して、
Unixタイムスタンプのミリ秒までの整数を、タイムスタンプに設定した場合(同じTSとした場合)、
JavaとPython3で同じsignature が生成されました。
私の方の調査はこれ以上無理なようです。
良いお返事をお待ちしています。
alexmayo
(Alex Mayo)
April 26, 2021, 11:04am
15
When creating the signature, have you ensured that the timestamp is based on UTC time?
If it is not based on UTC time then it will not work.
Thanks,
Alex
gakkai
(TANAKA Hidemune)
April 27, 2021, 12:09am
16
Thanks for the reply.
I checked and the timestamp was based on UTC.
gakkai
(TANAKA Hidemune)
April 27, 2021, 4:24am
17
以下の記述のページを見つけました。
userEmail: window.wvZoom.userEmail, // must be the attendee email address
ウェビナーに参加するためには、attendee としてメールアドレスを登録しておく必要がありますか? それとも、ホスト以外のメールアドレスならば何でもよいですか?
今回、URLを知っていれば誰でも参加できるウェビナーというのを実現したかったのですが。。
私の初歩的な判断ミスかも知れないです。
ご教示お願いします。
alexmayo
(Alex Mayo)
April 27, 2021, 7:24am
18
This should be the email address of a registered webinar user. If it is left empty than a pop-up will appear prompting the user to register.
Thanks,
Alex
gakkai
(TANAKA Hidemune)
April 27, 2021, 7:40am
19
返信ありがとうございます。
メールアドレスが無い場合はポップアップするのですね。
・・・
先程ポストしてから、調査を続けていました。
そこで分かったことですが、
meeting.html を呼び出す際に、以下の「=」から「%3D」への変換が必要なことに気づきました。
membername = base64.b64encode(membername.encode()).decode(‘utf-8’)
mailadress = base64.b64encode(mailadress.encode()).decode(‘utf-8’)
membername = membername.replace(’=’, ‘%3D’)
mailadress = mailadress.replace(’=’, ‘%3D’)
これに加えて、Signatureの生成処理を確認していましたが、
その段階で正しくウェビナーへ参加できることが確認できました。
私については、解決しました。
大変ありがとうございました。
自作の処理を間に挟むと、不具合のポイントが分からなくなりますね。
Index.htmlからMeeting.htmlまで遷移したときにはウェビナーに参加できましたので、
正しく動くSampleと自分の実装を比較・確認してようやく解決しました。
1.ハッシュが正しいかどうか
に加えて、
2.ハッシュが正しくMeeting.htmlに渡っているか
まで確認する必要があることに気づくのに時間が掛かってしまったのが反省点です。
1 Like
Glad @alexmayo could help you @gakkai
1 Like