你好,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;
}
还有一个问题:当有人注册时,他们只会收到网站内的通知而不会收到电子邮件吗?还是说,如果他们没有当前在网站内,他们也会收到电子邮件?
谢谢!
pmusaraj
(Penar Musaraj)
2
谢谢大卫,
您是否完成了事件订阅步骤?这是来自 Zoom API 的 Webhook,用于在事件开始时将“注册”按钮切换为“立即加入”按钮。
他们会收到私信(PM),这意味着如果他们的设置允许私信发送电子邮件,他们就会收到电子邮件。
我稍后会查看另外两个问题。
我都完成了。这可能是个愚蠢的问题,但在 content security policy script src 下您写的是 https://source.zoom.us,其中的 source 是否应该被替换为其他内容?可能是应用名称?
pmusaraj
(Penar Musaraj)
4
嗯。你检查了网络研讨会选项卡中的所有复选框吗?应该看起来像这样:
不,这样没问题。无论如何,你的设置还没有到达那个屏幕。
是的,我已经检查了这些,在应用中我的“事件通知端点 URL”应该是什么?
pmusaraj
(Penar Musaraj)
6
它应该是 https://yoursite.com/zoom/webhooks/webinars.json——我注意到我上面的说明中没有包含这一细节,对此抱歉。希望这将是缺失的那一块。
我之前表述不够清楚,仅为澄清:我现在仍然遇到“用户名等字段不能为空”的错误,但日志中没有任何记录,其他功能均正常运行。
pmusaraj
(Penar Musaraj)
9
我调查了这个问题,@davidkingham,看起来您在 Zoom 中创建的研讨会没有设置主持人,或者 API 没有返回主持人的详细信息。该插件尝试将 Zoom 用户账户(通过电子邮件)与 Discourse 账户进行匹配,如果未找到账户,则会在 Discourse 中创建一个暂存用户。
要么您的研讨会未设置主持人,要么获取主持人用户对象的 API 调用返回为空。
这很有道理,我之前为每个账户使用了不同的邮箱。我已在 Zoom 中将邮箱更改为与 Discourse 中的用户匹配。这解决了在主题中添加网络研讨会时无法显示即将举行的网络研讨会列表的问题(之前无法显示),但我仍然收到“不能为空”的错误。邮箱需要与创建主题的用户匹配,还是与管理员邮箱匹配?
另外,如果我删除该主题并重试,系统不允许我将该网络研讨会添加到另一个主题,因为它认为该网络研讨会已与其他主题关联,尽管该主题已被删除。
pmusaraj
(Penar Musaraj)
11
我想知道您是否从 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: "您已达到此 API 的每秒最大速率限制。请稍后重试。"
},
request_headers: [
"authorization: ******",
"connection: close"
],
request_params: [
],
http_status: "429"
}
pmusaraj
(Penar Musaraj)
13
这相当受限……据我所知,它只进行了两次 API 调用:一次获取网络研讨会信息,另一次获取网络研讨会主持人的详细信息(事实上,在理想情况下,主持人的详细信息本应包含在第一次 API 调用中)。
您可以尝试在 Zoom 开发者论坛 上提出此问题。
我在这里提出了这个问题,基于其他问题,我对他们能否提供帮助不太有信心。
对插件的一个小建议:我希望面板列表的显示方式能与主持人一致。即将头像放在标题下方,姓名显示在其旁边。目前,面板成员仅通过小头像显示,不够明显。