« Le nom d'utilisateur ne peut pas être vide » lors de la configuration du sujet du webinar Zoom

Bonjour Penar, merci pour cette excellente extension, elle sera vraiment utile ! Je viens de la tester et la configuration s’est bien déroulée. Voici quelques problèmes que j’ai remarqués :

  • Lorsque je crée un sujet avec le webinaire, j’obtiens cette erreur, mais si je rafraîchis la page, le sujet est bien créé et tout semble correct.

Voici ce que j’obtiens dans les journaux :

/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'
  • Le problème le plus important est que je ne vois pas de bouton « Rejoindre » lorsque la réunion est en direct :

  • Pour information, l’arrière-plan du compte à rebours ne suit pas le thème. J’ai dû le modifier pour qu’il corresponde à mon thème sombre, car il était simplement blanc :
.webinar-header .countdown .pill {
    background: #485769;
}

Question : lorsqu’une personne s’inscrit, reçoit-elle uniquement une notification sur le site et aucun e-mail ? Ou recevra-t-elle un e-mail si elle n’est pas actuellement sur le site ?

Merci !

Merci David,

Avez-vous terminé les étapes d’abonnement à l’événement ? Il s’agit d’un webhook de l’API Zoom, utilisé pour remplacer le bouton « S’inscrire » par un bouton « Rejoindre maintenant » dès le début de l’événement.

Elle recevra un MP, ce qui signifie qu’elle recevra un e-mail si ses paramètres sont configurés pour recevoir des e-mails via les MP.

Je vais examiner les deux autres problèmes sous peu.

J’ai fait tout cela. C’est probablement une question idiote, mais sous content security policy script src, vous avez https://source.zoom.us. Est-ce que source est censé être remplacé par autre chose ? Peut-être le nom de l’application ?

Hmm. Et avez-vous coché toutes les cases dans l’onglet du webinaire ? Cela devrait ressembler à ceci :

Non, c’est correct, dans tous les cas votre configuration n’est pas encore arrivée à cet écran.

Oui, je les ai vérifiés. Quelle devrait être l’« URL du point de terminaison de notification d’événement » dans l’application ?

Il devrait s’agir de https://yoursite.com/zoom/webhooks/webinars.json — je vois que mes instructions ci-dessus n’incluent pas ce détail, désolé pour cela. J’espère que ce sera la pièce manquante.

C’est fait. Merci !

Je n’ai pas été très clair, juste pour préciser : je rencontre toujours le problème d’erreur « Username, etc. ne peut pas être vide », mais sans rien dans les journaux maintenant ; tout le reste fonctionne correctement.

J’ai examiné ce problème @davidkingham. Il semble que le webinaire que vous créez dans Zoom n’ait pas d’hôte, ou que l’API ne renvoie pas ces détails pour l’hôte. Le plugin tente de faire correspondre le compte utilisateur Zoom (via l’adresse e-mail) à un compte Discourse, et s’il ne trouve pas de compte, il crée un utilisateur temporaire dans Discourse.

Soit votre webinaire n’a pas d’hôte défini, soit l’appel API pour obtenir l’objet utilisateur de l’hôte renvoie une valeur vide.

Cela a du sens, j’utilisais une adresse e-mail différente pour chacun. J’ai modifié l’adresse e-mail dans Zoom pour qu’elle corresponde à mon utilisateur sur Discourse. Cela a permis d’afficher les webinaires à venir dans la liste lors de l’ajout d’un webinaire au sujet, ce qui ne fonctionnait pas auparavant, mais je reçois toujours l’erreur « …ne peut pas être vide ». L’adresse e-mail doit-elle correspondre à l’utilisateur qui crée le sujet ou à l’e-mail de l’administrateur ?

De plus, si je supprime le sujet pour réessayer, il ne me permet pas d’ajouter ce webinaire à un autre sujet car il pense que le webinaire est déjà associé à un autre sujet, même s’il a été supprimé.

Je me demande si vous recevez un e-mail de la part de Zoom pour l’utilisateur. Peut-être que la clé API n’a pas les scopes corrects définis ?

Voici l’appel API qui, je pense, ne renvoie pas de données : https://marketplace.zoom.us/docs/api-reference/zoom-api/users/user (ou peut-être que le statut de votre utilisateur est pending ?)

Oui, confirmé. Une correction pourrait arriver bientôt. Pour le moment, vous pouvez accéder au sujet supprimé et, depuis le menu d’administration du sujet, cliquer sur Supprimer le webinaire.

Voici le journal des appels lorsque j’obtiens l’erreur, il semble que la limite de taux soit atteinte

{
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: "Vous avez atteint la limite de taux maximale par seconde pour cette API. Réessayez plus tard."
},
request_headers: [
"authorization: ******",
"connection: close"
],
request_params: [
],
http_status: "429"
}

C’est assez restrictif… À ma connaissance, cela ne fait que 2 appels API : un pour obtenir le webinaire et l’autre pour obtenir les détails de l’hôte du webinaire (en fait, dans un monde idéal, les détails de l’hôte auraient dû être inclus dans le premier appel API).

Vous pouvez essayer de soumettre cela sur le forum de développement de Zoom.

J’ai posé la question ici, mais en me basant sur d’autres questions, je n’ai pas beaucoup confiance qu’ils aideront.

Une petite suggestion pour le plugin : j’aimerais voir la liste des panélistes s’afficher comme celle de l’hôte. C’est-à-dire placer l’avatar sous le titre avec le nom à côté. Pour l’instant, le panéliste n’est pas très évident avec seulement le petit avatar.