我运营着一个多作者 WordPress 博客。如何让发帖功能正常工作,而无需让所有作者在 Discourse 上创建账户?我是否应该使用 WordPress 和 Discourse 之间的 SSO(单点登录)来解决这个问题?
如果您希望作者能够以他们自己的名义在 Discourse 上发布帖子,他们需要创建 Discourse 账户。SSO(单点登录)是解决此问题的好方法,但启用 SSO 后,用户只能通过 WordPress 网站登录到您的论坛。这可能不是您想要的结果。
另一种选择是,将所有帖子从 WordPress 发布到 Discourse 时都使用同一个 Discourse 用户名。如果用户留空他们的 Discourse 用户名设置,帖子将通过您在插件“连接设置”选项卡中设置的“发布用户名”发布到 Discourse。
有意思……据我所知,我的所有作者都没有设置该项。当我查看用户资料时,并没有看到“Discourse 用户名”的设置选项。我该在哪里找到它?
此外,我刚刚注意到我在 Discourse WordPress 插件中使用了以下设置:
从 WordPress 用户资料页面中移除 Discourse 名称字段。
不显示 Discourse 名称字段 —— 除非启用了 SSO,否则此设置将导致所有发布到 Discourse 的文章都以“发布用户名”发布。
据我理解,上述设置会强制所有文章都以在“发布用户名”设置中定义的用户身份发布。
我遗漏了什么?
谢谢。我刚刚意识到我设置了不显示 Discourse 名称字段。这应该强制所有帖子显示为发布用户名。
是的,如果你想让帖子以作者自己的 Discourse 用户名发布,那就关闭这个选项。你应能顺利设置用户名。(某些主题,例如 Extra,会通过隐藏个人资料页上的用户名来禁止修改用户名。)
编辑补充:现在我注意到本话题的标题是一个错误编号。我不确定我之前所说的内容能否解决该问题。
是的,这正是预期的工作方式。您能否从 WordPress 使用您的账户向 Discourse 发布帖子?
发布帖子到 Discourse 时出现 403 错误的最常见原因是 Discourse 用户名设置不正确。或许可以暂时禁用“不显示 Discourse 名称字段”设置,然后查看部分作者的个人资料页面。请确保作者的 Discourse 用户名字段为空。该字段位于用户个人资料页面的“联系信息”部分。
我们很快会将 Discourse 用户名从“联系信息”部分移出,并允许站点管理员手动为作者设置 Discourse 用户名,同时向作者隐藏该设置。这是出于安全考虑,以确保在多作者网站上人们使用的是正确的 Discourse 用户名。
好的,这正是我所预期的。
我原本以为问题出在用户名不匹配上,但当我启用了“不显示 Discourse 名称字段”选项时,我以为这会覆盖所有设置。
我认为你提到的这个改动会非常有帮助。
我刚才尝试关闭该选项后发布,但收到了同样的错误。
关闭该选项后,请查看您的个人资料页面,确认“Discourse 用户名”字段是否为空。
所有用户的 Discourse 用户名均为空白。
当您进入 WP Discourse 连接选项卡时,是否看到显示“您已连接到 Discourse
是的。在“连接选项”标签页中,我看到消息“您已连接到 Discourse”。
API 密钥适用于所有用户,发布名称为 Discourse 论坛的管理员。用户名不是系统用户“system”。
你能否尝试将用户名更改为 ‘system’(不带引号),看看是否有区别?
我已将用户名更改为 system,但仍收到相同的错误消息。
“发布此帖子到 Discourse 时发生错误。”
以下是错误邮件中显示的详细信息:
失败原因:
Discourse 返回了 403 响应代码。
禁止访问
请检查:
- 作者是否正确设置了其 Discourse 用户名
大家还有其他解决这个问题的想法吗?
我能想到的唯一尝试方法是创建一个新的 API 密钥并重新输入所有内容。
好的……这很奇怪……我正在使用 nodechef 托管 discourse……我想知道是他们的构建问题还是服务器配置问题。有什么想法吗?
我尝试更换了密钥,但问题依旧。
感谢您提供有关托管的详细信息。我本该事先询问这一点。这个问题确实可能与其托管服务有关。在我们自己的托管服务、托管在 https://www.communiteq.com/ 上的站点以及自托管站点中,我尚未遇到过此类问题。
如果您的 WordPress 站点可用 WP-CLI,调试此问题的最简单方法是在 wp 控制台中尝试使用与 WP Discourse 配置中相同的凭据创建一个 Discourse 主题。该请求的响应将提供一些关于问题的详细信息。
好的,我会尝试一下。
我原本打算在 AWS 账户上搭建自托管配置。我会试试,看看是否会出现同样的问题。感谢您的帮助。
出于某种原因,发布操作因 403 错误而失败。无论我怎么做都无法解决。
失败原因:
从 Discourse 返回了 403 响应代码。
禁止访问
请检查以下内容:
- 作者是否已正确设置其 Discourse 用户名
“连接”选项卡显示“已连接到 Discourse”。在发布设置中,“不显示 Discourse 名称字段”选项已禁用。
我已重新生成新的 API 密钥以确保连接正常。系统用户的默认用户名为“system”。
我实在束手无策。
如有任何帮助,不胜感激。