/ 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 才会显示应用程序密码这一栏。 - 账号要有发布权限. 请使用 Author、Editor 或 Administrator 角色的账号。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 会覆盖原来的渠道,不会生成重复项。
