Zoomウェビナーのトピック設定時に「ユーザー名を空白にできません」と表示される

Penar さん、こんにちは。素晴らしいプラグインをありがとうございます!とても役立ちそうです。早速テストしてセットアップしましたが、スムーズに完了しました。ただ、いくつか気になる点があります:

  • ウェビナーでトピックを作成すると、このエラーが表示されます。しかし、ページをリフレッシュするとトピックが正常に作成され、すべて問題なさそうに見えます。

ログには以下のようなエラーが表示されます。

/var/www/discourse/plugins/discourse-zoom/app/jobs/scheduled/send_webinar_reminders.rb:18:in `block (2 levels) in execute'
activerecord-6.0.1/lib/active_record/relation/delegation.rb:85:in `each'
activerecord-6.0.1/lib/active_record/relation/delegation.rb:85:in `each'
/var/www/discourse/plugins/discourse-zoom/app/jobs/scheduled/send_webinar_reminders.rb:12:in `block in execute'
activerecord-6.0.1/lib/active_record/relation/delegation.rb:85:in `each'
activerecord-6.0.1/lib/active_record/relation/delegation.rb:85:in `each'
/var/www/discourse/plugins/discourse-zoom/app/jobs/scheduled/send_webinar_reminders.rb:11:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
rails_multisite-2.1.1/lib/rails_multisite/connection_management.rb:64:in `with_connection'
/var/www/discourse/app/jobs/base.rb:221:in `block in perform'
/var/www/discourse/app/jobs/base.rb:217:in `each'
/var/www/discourse/app/jobs/base.rb:217:in `perform'
/var/www/discourse/app/jobs/base.rb:279:in `perform'
mini_scheduler-0.12.2/lib/mini_scheduler/manager.rb:86:in `process_queue'
mini_scheduler-0.12.2/lib/mini_scheduler/manager.rb:36:in `block (2 levels) in initialize'
  • 最も大きな問題は、会議がライブ状態のときに「参加」ボタンが表示されないことです。

  • 参考までに、カウントダウンの背景がテーマに追従しないため、白のままだったので、ダークテーマに合わせて以下のように変更しました。
.webinar-header .countdown .pill {
    background: #485769;
}

質問ですが、誰かが登録した場合、サイト内の通知のみを受け取り、メールは送られないのでしょうか?それとも、現在サイト内にいない場合はメールが送られるのでしょうか?

よろしくお願いいたします!

デビッド、ありがとうございます。

イベント登録の手順は完了されましたか?これは Zoom API からの webhook で、イベントが開始されると同時に「登録」ボタンを「今すぐ参加」ボタンに切り替えるために使用されます。

PM(プライベートメッセージ)が届きます。つまり、ユーザーの設定で PM によるメール通知が有効になっている場合、メールも受信します。

残りの 2 つの問題については、まもなく調査いたします。

すべて完了しました。愚かな質問かもしれませんが、content security policy script srchttps://source.zoom.us とありますが、source は何かに置き換える必要があるのでしょうか?もしかしてアプリ名でしょうか?

ふむ。ウェビナータブのすべてのチェックボックスを確認しましたか?以下のような状態になっているはずです:

いいえ、そのままで構いません。いずれにせよ、あなたの設定はまだその画面に到達していないようです。

はい、それらは確認済みです。アプリ内の「イベント通知エンドポイント URL」には何を入力すればよいでしょうか?

https://yoursite.com/zoom/webhooks/webinars.json であるはずです。上記の指示にその詳細が含まれていなかったことに気づきました、申し訳ありません。それが不足していた部分であるといいのですが。

それで解決しました。ありがとうございます!

はっきりと説明できていませんでした。補足しますと、現在も「Username などの項目が空白です」というエラーが発生しており、ログには何も記録されていません。それ以外の機能は正常に動作しています。

@davidkingham さん、この件について調査いたしました。Zoom で作成されているウェビナーにホストが設定されていないか、または API がホストの詳細を返していないようです。プラグインは、Zoom のユーザーアカウント(メールアドレス経由)を Discourse のアカウントと照合し、該当するアカウントが見つからない場合は、Discourse に段階的なユーザーを作成します。

つまり、ウェビナーにホストが設定されていないか、ホストのユーザーオブジェクトを取得するための API 呼び出しが空のレスポンスを返しているかのどちらかです。

なるほど、それぞれ異なるメールアドレスを使用していたのですね。Zoom のメールアドレスを Discourse のユーザー名と一致するように変更しました。これにより、トピックにウェビナーを追加する際に、以前は表示されなかった今後のウェビナーがリストに表示されるようになりましたが、それでも「…は空白にできません」というエラーが発生します。メールアドレスは、トピックを作成しているユーザーのものに合わせる必要があるのでしょうか、それとも管理者のメールアドレスと一致させる必要があるのでしょうか?

また、再試行するためにトピックを削除しても、ウェビナーが別のトピックに既に紐付いていると認識されるため、他のトピックにそのウェビナーを追加することができません。実際には削除済みなのに、です。

Zoom からユーザーに対してメールが返ってきているかどうか疑問に思います。もしかすると、API キーに正しいスコープが設定されていないかもしれません。

データが返されていないと思われる API 呼び出しはこれです:https://marketplace.zoom.us/docs/api-reference/zoom-api/users/user(あるいは、ユーザーのステータスが pending になっている可能性もありますか?)

はい、確認されました。この問題に対する修正が近日中に提供される可能性があります。当面は、削除されたトピックにアクセスし、トピックの管理者メニューから「ウェビナーの削除」をクリックしてください。

エラーが発生した際の呼び出しログは以下の通りです。レート制限に達しているようです。

{
endpoint: "https://api.zoom.us/v2/users/VI4TWwOvT-SKaycEEMws8w",
response_headers: [
"Set-Cookie: cred=73B256F7AFD1CC7FEA83613B92876F28; Path=/; Secure; HttpOnly"
],
date_time: "2020-03-25 11:42:17",
method: "GET",
request_body: "N/A",
response: {
code: 429,
message: "You have reached the maximum per-second rate limit for this API. Try again later."
},
request_headers: [
"authorization: ******",
"connection: close"
],
request_params: [
],
http_status: "429"
}

それはかなり制限的ですね…私の知る限り、API 呼び出しは 2 回だけで、1 回目はウェビナーの取得、2 回目はウェビナー主催者の詳細取得です(実際、理想的には主催者の詳細は最初の API 呼び出しに含まれるべきでした)。

Zoom の開発者フォーラムでこの件を提起してみるのも一案です。

この質問を投稿しましたが、他の質問から判断すると、サポートが役に立つとはあまり期待していません。

プラグインへの小さな提案ですが、パネリストのリストをホストと同様に表示してほしいです。具体的には、アバターをタイトルの下に配置し、その隣に名前を表示する形式です。現在はアバターが小さく、パネリストであることがあまり明確ではありません。