2.WordPress使用Api发布文章

2.1 前言

最近想通过调用WordPress的api来发文,研究了一下流程,做个记录。

2.2 Api调用凭证准备

在WordPress中启用REST API并获取API凭证。你可以通过以下方式进行身份验证:

JWT (JSON Web Token) 身份验证: 需要安装JWT Authentication插件。

Basic Auth: 适合本地开发,不推荐用于生产环境。

OAuth: 适合生产环境,但设置较为复杂。
这里使用第一种jwt方式。

在WordPress的插件市场搜索WordPress REST API Authentication,然后安装并启用。
然后点插件的配置,进入到下面的页面,选择JWT AUTHENTICATION

20240901232443

点击“next”进入下一步,进入到配置jwt和测试jwt的页面,按照提示先获取token,然后验证token有效性,最后使用token获取文章列表。如果没有问题则点击finish完成配置

20240901232800

2.3 碰到的问题及解决方案

验证token过程中碰到如下报错:

Authorization header not received. Either authorization header was not sent or it was removed by your server due to security reasons

原因有两个,一是nginx转发没有配置带上token,二是wordpress镜像中的.htaccess文件没有添加转发配置。
nginx中添加配置如下:
text
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers "Authorization";
proxy_set_header Authorization $http_authorization;

.htaccess文件中添加配置如下:
text
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

修改后使用nginx -s reload重启nginx,以及使用docker restart重启WordPress,再次重复上述步骤验证。

2.4 调用示例

(1)先获取token
bash
curl -X POST "https://your_domain/index.php?rest_route=/api/v1/token" \
-H "Content-Type: application/json" \
-d '{"username": "your_name", "password": "your_password"}'

返回如下token信息

{"tokentype":"Bearer","iat":17252xxx,"expiresin":1882885306,"jwttoken":"tokencontent"}

token有效期默认为1小时,到期后需要重新获取

(2)发布文章
bash
curl -X POST "https://your_domain/index.php?rest_route=/wp/v2/posts" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer token" \
-d '{
"title": "使用api发布的文章",
"content": "使用api发布的文章",
"status": "publish"
}'

打开页面就能看到刚才发布的文章

20240901235235

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇