‘O nome de usuário não pode ficar em branco’ ao configurar o tópico do webinar do Zoom

Olá, Penar, obrigado pelo excelente plugin! Isso será muito útil! Acabei de testá-lo e a configuração ocorreu sem problemas. Alguns problemas que notei:

  • Quando crio um tópico com o webinar, recebo este erro, mas se eu atualizar a página, o tópico é criado e tudo parece estar ok.

Vejo isso nos logs:

/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'
  • O maior problema é que não vejo um botão de entrar quando a reunião está ao vivo:

  • Só para avisar: o fundo da contagem regressiva não segue o tema. Tive que alterá-lo para combinar com meu tema escuro, pois ele estava apenas branco:
.webinar-header .countdown .pill {
    background: #485769;
}

Pergunta: quando alguém se registra, receberá apenas uma notificação no site e nenhum e-mail? Ou receberá um e-mail se não estiver atualmente no site?

Obrigado!

Obrigado, David,

Você concluiu as etapas de assinatura do evento? Trata-se de um webhook da API do Zoom, usado para alterar o botão “Registrado” para um botão “Participar agora” assim que o evento começar.

Eles receberão uma MP, o que significa que receberão um e-mail se suas configurações estiverem definidas para que as MPs enviem e-mails.

Em breve, investigarei os outros dois problemas.

Eu fiz tudo isso. Provavelmente é uma pergunta boba, mas em content security policy script src você tem https://source.zoom.us. O source deveria ser substituído por algo diferente? Possivelmente o nome do aplicativo?

Hmm. E você marcou todas as caixas na aba do webinar? Deve se parecer com isto:

Não, está correto. De qualquer forma, sua configuração ainda não chegou até essa tela.

Sim, verifiquei aqueles. Qual deve ser o Event notification endpoint URL no aplicativo?

Deveria ser https://yoursite.com/zoom/webhooks/webinars.json – vejo que minhas instruções acima não incluem esse detalhe, desculpe por isso. Espero que isso seja a peça que faltava.

Isso resolveu. Obrigado!

Não fui muito claro, apenas para esclarecer: ainda estou com o problema de erro “Username, etc. não pode estar em branco”, mas agora sem nada nos logs. Tudo o mais está funcionando corretamente.

Analisei esse problema, @davidkingham. Parece que o webinar que você está criando no Zoom não tem um host definido ou a API não está retornando esses detalhes do host. O plugin tenta associar a conta do usuário do Zoom (via e-mail) a uma conta do Discourse e, se não encontrar uma conta, cria um usuário temporário no Discourse.

Ou seja, ou seu webinar não tem um host definido, ou a chamada à API para obter o objeto do usuário do host está retornando vazia.

Isso faz sentido, eu estava usando um e-mail diferente para cada um. Alterei o e-mail no Zoom para corresponder ao meu usuário no Discourse. Isso ajudou a mostrar os webinars futuros na lista ao adicionar um webinar ao tópico, algo que não acontecia antes, mas ainda recebo o erro ...não pode ficar em branco. O e-mail precisa corresponder ao usuário que está criando o tópico ou ao e-mail do administrador?

Além disso, se eu excluir o tópico para tentar novamente, não me permite adicionar aquele webinar a outro tópico, pois o sistema entende que o webinar já está associado a outro tópico, mesmo tendo sido excluído.

Estou me perguntando se você está recebendo algum e-mail de volta do Zoom para o usuário. Talvez a chave da API não tenha as escopos corretos configurados?

Esta é a chamada da API que acredito não estar retornando dados: https://marketplace.zoom.us/docs/api-reference/zoom-api/users/user (ou talvez o status do seu usuário esteja pending?)

Sim, confirmado. Pode haver uma correção em breve para isso. Por enquanto, você pode acessar o tópico excluído e, no menu de administrador do tópico, clicar em “Remover Webinar”.

Aqui está o registro de chamadas quando recebo o erro; parece que o limite de taxa está sendo atingido

{
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: "Você atingiu o limite de taxa por segundo máximo para esta API. Tente novamente mais tarde."
},
request_headers: [
"authorization: ******",
"connection: close"
],
request_params: [
],
http_status: "429"
}

Isso é bastante restritivo… Pelo que sei, são feitas apenas 2 chamadas de API: uma para obter o webinar e outra para obter os detalhes do anfitrião do webinar (na verdade, em um mundo ideal, os detalhes do anfitrião deveriam ter sido incluídos na primeira chamada de API).

Você pode tentar levantar isso no fórum de desenvolvedores da Zoom.

Fiz a pergunta aqui, pois, com base em outras questões, não tenho muita confiança de que eles ajudarão.

Uma pequena sugestão para o plugin: gostaria que a lista de painelistas fosse exibida como a do anfitrião, ou seja, com o avatar abaixo do título e o nome ao lado. No momento, o painelista não é muito óbvio, tendo apenas o pequeno avatar.