将 Connect WP 与 Discourse 连接

安装 WP Discourse 插件 后,您需要将其连接到 Discourse。准备就绪后,观看此短视频或按照以下说明操作。

下一步

插件连接后,请转到描述您要设置的功能的主题:


说明

步骤

当您查看 WP Discourse 插件设置的“连接”选项卡时,页面顶部始终会有一个通知,告知您它是否已连接到您的 Discourse。要建立连接,请输入:

  1. 在“Discourse URL”设置字段中输入论坛的 URL

  2. 查看“Publishing Username”设置。除非您有特定原因要更改此设置,否则请将其保留为“system”。如果您更改此设置,它必须是您 Discourse 上管理员用户的用户名。您可以通过点击用户头像在其姓名下方找到用户的用户名。

  3. 为 WordPress 创建 Discourse API 密钥:

    1. 转到您的 Discourse 管理面板(在您的 discourse 论坛中),然后点击“API”。

    2. 使用以下信息创建一个新密钥:

      • Description:输入一个清晰说明此密钥用途的标签
      • User Level:选择“All Users”
      • Scope:选择“Global”
    3. 复制屏幕上显示的密钥,然后点击“Continue”。

  4. 将 API 密钥粘贴到 WP Discourse 的“API Key”设置中。

填写完这些设置后,请务必点击“Save Options”按钮。如果一切配置正确,您应该会在页面顶部看到“You are connected to Discourse”的通知。

Multisite

WP Discourse 插件有一个 Multisite Configuration 选项,用于一个 Discourse 论坛连接到多个 WordPress 网络的情况。此选项在网络主站点的 Connection 设置选项卡中可用。

选择它允许将插件的某些设置应用于整个网络(所有连接选项、Webhook 选项、DiscourseConnect Secret Key 和 Enable DiscourseConnect 设置)。启用此设置将创建一个额外的数据库表,用于在从 WordPress 发布帖子到 Discourse 时关联 Discourse topic_ids 和 WordPress blog_ids。

Multisite 中不支持的功能

在 WordPress Multisite 上不支持将 WordPress 用作 DiscourseConnect 客户端。

Granular API Key (new :sparkles:)

您现在可以为 WP Discourse 插件创建粒度 API 密钥。粒度 API 密钥将在不久的将来成为连接 WP Discourse 到 Discourse 的标准方式。

如何使用粒度密钥

以下是如何使用粒度密钥:

  1. 首先,请确保您使用的是插件版本 2.4.3,并且 Discourse 是 tests-passed 分支的最新版本。WP Discourse 粒度 API 密钥尚未在 Discourse stable 上得到支持。

  2. 转到 Discourse 管理仪表板中的 API 面板,创建一个新的“All Users”密钥,但将 Scope 设置为“Granular”。

  3. 在 Scopes 列表的底部,您会找到 WordPress scopes。选择“Publishing”范围(目前是必需的),以及您在 WP Discourse 插件中使用的任何其他功能的范围,然后点击“Save”。

  4. 现在,在 WP DiscourseAPI Key 设置中替换您的旧密钥,并保存您的设置。

保存 WP Discourse 设置后,您应该会看到正常的“You are connected to Discourse!”消息。

如果您看到“You are not connected to Discourse…”,可能是因为您的范围不正确。该插件会将您的 API 密钥的范围与您当前启用的功能进行比较。如果您拥有的范围不足,它将认为您未连接。您可以通过启用连接日志并在 Logs 查看器中查看错误消息来查看缺少哪些范围。

WP Discourse Scopes

WP Discourse 插件有四个范围:

  1. Publishing。此范围允许您将帖子从 WordPress 发布到 Discourse。即使您不发布帖子(例如,仅使用 DiscourseConnect),此范围也是必需的,因为它包含所有功能都使用的功能。这将在未来解耦,使所有范围都成为可选的。

  2. Commenting。此范围允许在 WordPress 中显示发布到 Discourse 的帖子的回复作为评论。

  3. DiscourseConnect。此范围允许使用 DiscourseConnect(以任何配置)。

  4. Utilities。此范围是插件中某些实用功能所必需的。如果您有任何与插件交互的自定义代码,则应启用此范围,除非您确定不需要它。

为什么使用粒度密钥?

使用粒度密钥的主要原因是安全。全局 API 密钥允许拥有该密钥的任何人像您 Discourse 上的管理员一样行事。这意味着您的 Discourse 的安全性取决于您的 WordPress 的安全性。粒度密钥的功能要弱得多,仅限于您为其启用的范围。

7 个赞

我们在更新 Wordpress 上的帖子时遇到一个问题,相关的帖子没有在 Discourse 上更新。我们在日志中收到以下错误:

ERROR:
publish.ERROR: update_post.post_error {“wp_title”:"title … ",“wp_author_id”:“2205402”,“wp_post_id”:3179224,“response_message”:“您无权查看所请求的资源。API 用户名或密钥无效。”,“http_code”:403}

我们正在使用 Granular key 将 WP Discourse 连接到 Discourse,并具有“Wordpress Pubblishing”和“Wordpress Commenting”范围。有人能帮我解决这个问题吗?

您好 @deepak_dhamde,很抱歉您遇到了问题。我今天正在出差,但我会尝试重现您的问题,并在明天第一时间回复您。

1 个赞

@deepak_dhamde,我录制了一段自己设置您正在使用的粒度密钥的视频。如果您能审阅一下,告诉我您是否有任何不同的做法。

您好 @angus,抱歉回复晚了。
我们正在遵循完全相同的流程来生成 Granular Key,但日志中仍然看到相同的 403 错误。当我们更新 WordPress 帖子时,Discourse 上的相关主题没有得到更新。

错误:

[2024-09-16 06:51:28] publish.ERROR: update_post.post_error {“wp_title”:“在暂存网站上测试更新帖子功能”,“wp_author_id”:“2168699”,“wp_post_id”:3175772,“response_message”:“您无权查看所请求的资源。API 用户名或密钥无效。”,“http_code”:403}

@deepak_dhamde

你设置的方式或你的环境可能存在一些细微差别。在没有更多信息的情况下,我很难找出这种差别。以下是我们前进的几种方式:

  1. 你可以给我访问你环境的权限(我很乐意签署保密协议),这样我就可以查看了;或者
  2. 你可以录制一段你做和我刚才一样事情的视频(私下发给我);或者
  3. 你可以再仔细检查一下,并考虑以下因素:
    • 你的 Discourse 和 Wordpress 是否是最新版本?
    • 你是否能够创建一个有效的“全局”密钥?
    • 你是否尝试让你的团队中的不同成员执行相同的步骤(有时新鲜的视角会发现新的东西)
    • 与我分享你的 WP Discourse 日志查看器中的“meta”文件(即你的 Wordpress 环境),我会看看是否有任何异常之处。

@angus

我们创建了一个新的 Granular 密钥,遵循了你在视频中提到的程序,并启用了编辑发布范围,它开始正常工作了。非常感谢你的耐心和支持。

1 个赞

4 个帖子已拆分为新主题:将 WP Discourse 连接到运行特定版本的本地 Discourse 实例