OROVA.VN — BIZ AI AGENT

/ Orova Social

连接 WordPress 网站 用应用程序密码。

在 WordPress 里创建一个应用程序密码,粘贴到 Orova,Orova 就能把内容发布到你的网站。

要让 Orova Social 发布到你的 WordPress 网站,Orova 需要一种登录方式。正确的做法是使用应用程序密码——WordPress 单独发给某一个应用的密码。你在 WordPress 里创建它,粘贴到 Orova 一次,随时可以撤销。本页把每一步都走一遍,并列出最常见的报错。

/ 概览

什么是应用程序密码

应用程序密码是 WordPress 发给某一个外部应用的密码。它不会取代你的登录密码:它只能用于 REST API,无法登录后台。你可以创建任意多个,每个取一个名字,并逐个撤销。

  • 不要用登录密码. 登录密码能打开整个后台,而且通常还有两步验证,所以 WordPress 不接受它用于 REST API。应用程序密码正是为这件事准备的。
  • 需要 WordPress 5.6 以上并启用 HTTPS. 这个功能自 WordPress 5.6 起自带,不需要装插件。只有网站通过 https:// 访问时,WordPress 才会显示应用程序密码这一栏。
  • 账号要有发布权限. 请使用 AuthorEditorAdministrator 角色的账号。Subscriber 和 Contributor 不能发布文章,用它们连接的渠道同样发不出去。

/ 在 WordPress 中

在 WordPress 中创建

五个步骤,都在你自己的 WordPress 后台完成:

  • 1

    用将来发布文章的那个账号登录. 应用程序密码属于某一个用户。Orova 发布的文章会署这个账号的名。

  • 2

    打开 用户 → 个人资料. 在左侧菜单选择 Users(用户)→ Profile(个人资料)。如果你是管理员、要给别人创建,请进入 用户 → 所有用户,再点击那个账号。

  • 3

    向下找到 “Application Passwords”. 它在个人资料页面的靠下位置。如果没有这一栏,说明网站的 WordPress 低于 5.6、没有启用 HTTPS,或者被安全插件关掉了。

  • 4

    取个名字,点 Add New Application Password. 填一个你以后认得出来的名字,例如 Orova。这个名字只是方便你日后撤销时分辨。

  • 5

    立刻复制那串 24 个字符. WordPress 会显示一串 24 个字符、分成六组、中间有空格。这串只显示一次——关掉页面就再也看不到,只能重新创建。连空格一起粘贴也没问题。

WordPress 的界面大致是这样,要复制的就是那行密码:

Users -> Profile -> Application Passwords

  New Application Password Name:  Orova
  [ Add New Application Password ]

  Your new password for Orova is:
      abcd EFGH 1234 ijkl MNOP 5678      <- 24 characters, shown ONCE

/ 在 Orova 中

粘贴到 Orova

打开 Social项目 → 选择项目 → 渠道 标签页,找到 Website 那一栏。它有三个输入框和一个按钮。

  • 1

    网站地址. 粘贴网站的根地址,以 https:// 开头,例如 https://yoursite.com,不要填后台地址。如果不小心带上了 /wp-json,Orova 会自动去掉。

  • 2

    Username. 这是 WordPress 的登录名,就是个人资料里 Username 那一栏的内容——不是显示名称,也不是邮箱。

  • 3

    Application password. 粘贴刚才复制的那串 24 个字符。带空格也可以。

  • 4

    点击 Save channel. Orova 会当场调用你的 WordPress 做一次校验。通过之后,渠道就出现在列表里,并显示网站地址和登录名;渠道名称和头像取自 WordPress 的个人资料。

/ 校验

保存时 Orova 会校验什么

Orova 不会盲目保存。点击 Save channel 时,它会用你填的信息真实调用一次 WordPress REST API:

GET https://yoursite.com/wp-json/wp/v2/users/me?context=edit

Headers:
  Authorization: Basic <base64 of "username:application password">
  Accept: application/json

What Orova does with the reply:
  200 + JSON profile   -> channel saved (name and avatar come from
                          the WordPress profile)
  401 / 403            -> wp_auth   (WordPress rejected the login)
  404 / not JSON       -> wp_url    (wrong address, REST API off,
                                     or "Plain" permalinks)
  no reply in 10 s     -> wp_url    (timeout)

只有 WordPress 返回 200 并带上用户资料,渠道才会被保存。Orova 最多等待 10 秒。渠道会保存网站地址、登录名和应用程序密码,供以后发布使用;界面只会回显地址和登录名,绝不回显密码。

/ 排查

常见报错

保存失败时,Orova 会给出两种代码之一:wp_url(连不上你的网站)或 wp_auth(WordPress 拒绝登录)。下表是每种代码常见的原因。

代码原因处理办法
wp_url地址不是 https、缺少域名,或者中间有空格。https://yoursite.com 的格式重新填写。网站还没有 HTTPS 就先装证书——WordPress 在 http 下也不会创建应用程序密码。
wp_url固定链接设成了 “Plain”,导致 /wp-json 返回 404。进入 设置 → 固定链接,选择 “文章名”,点击保存更改。其他都不用动。
wp_url安全插件或某段代码关闭了 REST API——网站返回的是 HTML 而不是 JSON。用浏览器打开 https://yoursite.com/wp-json。如果返回的不是 JSON,就暂时停用安全插件,或者为已登录用户重新开放 REST API。
wp_auth登录名填错,或者密码粘贴时少了几个字符。重新创建一个应用程序密码并再复制一次。确认 Username 填的是登录名,而不是显示名称或邮箱。
wp_auth应用程序密码已被撤销,或者账号被停用。进入 用户 → 个人资料 创建新的应用程序密码,然后在 Orova 里重新保存渠道。
wp_auth安全插件拦截了应用程序密码。在安全插件的设置里,为这个账号重新允许应用程序密码。有些插件把这个开关叫做 “REST API authentication”。
wp_auth服务器在转给 PHP 之前去掉了 Authorization 请求头,WordPress 因此看不到登录信息。把下面两行加到 WordPress 根目录的 .htaccess 文件里。使用 Nginx 的话,请让主机商转发 Authorization 请求头。

要添加的内容——放在 # BEGIN WordPress 之前:

# .htaccess in the WordPress root, above "# BEGIN WordPress"
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

/ 安全

安全

  • 每个服务一个密码. 不要把同一个应用程序密码用在多个工具上。给每个密码起清楚的名字,撤销其中一个也不影响其他。
  • 随时可以撤销. 进入 用户 → 个人资料 → Application Passwords,点击 Revoke。此后 Orova 立即无法发布并报 wp_auth;想重新连接就创建新密码,再保存一次渠道。
  • 可以给 Orova 单独建一个账号. 一个 Author 或 Editor 角色的 WordPress 用户就足够发布文章,不必给管理员权限。
  • Orova 不会再显示密码. 保存之后,渠道界面只显示网站地址和登录名。断开渠道时,Orova 会删除已保存的应用程序密码。

/ 小结

连接一次就够了

Website 渠道连接好之后,它就像其他渠道一样留在这个项目里,你在 Orova Social 写内容时选中它即可。以后换密码或换账号,只要重新填这三个框再点 Save channel——Orova 会覆盖原来的渠道,不会生成重复项。

← 返回指南库

/ 需要帮助?

一直连不上?打开工作区里的支持板块,或者 给我们发消息。