用 Hermes 接入博客园发布:一次从配置到踩坑排查的完整记录

背景

今天我尝试把本地运行的 AI 助手 Hermes 接入博客园,让它可以在收到文章内容后,自动整理并通过博客园的远程发布接口发布成公开博文。

这篇文章记录整个接入流程、期间遇到的问题,以及最终验证成功的关键点。文中不会展示任何访问令牌、密码或敏感配置值。

目标

  • 让 Hermes 能通过博客园的 MetaWeblog 接口发布文章。
  • 支持我直接把内容发给 Hermes,由 Hermes 整理标题、正文和分类后发布。
  • 默认公开发布。
  • 将 AI 相关内容归入 AI 相关分类。

一、确认博客园远程发布接口

博客园支持 MetaWeblog API,访问地址格式一般是:

https://rpc.cnblogs.com/metaweblog/博客名

我的博客地址是:

https://www.cnblogs.com/zsnhweb/

因此 MetaWeblog 接口地址是:

https://rpc.cnblogs.com/metaweblog/zsnhweb

通过访问接口说明页,可以看到它支持 metaWeblog.newPostmetaWeblog.editPostmetaWeblog.getCategories 等方法。

二、准备 Hermes 的环境变量

为了避免把账号信息写死在脚本里,我把博客园配置放进了 Hermes 的本地环境文件:

C:\Users\admin\.hermes\.env

使用的配置项包括:

CNBLOGS_BLOG_ID
CNBLOGS_BLOG_URL
CNBLOGS_METAWEBLOG_URL
CNBLOGS_USERNAME
CNBLOGS_PASSWORD
CNBLOGS_DEFAULT_PUBLISH

其中 CNBLOGS_PASSWORD 实际填写的是博客园的 MetaWeblog 访问令牌,不是普通登录密码。

三、开启 MetaWeblog 客户端访问

一开始发布失败,博客园返回的核心提示是:

请配置正确的用户名与访问令牌,密码登录已取消,请在密码框中输入访问令牌。

后来进入博客园账号中心的 MetaWeblog 设置页,确认需要开启:

允许 MetaWeblog 博客客户端访问

这个开关开启后,页面会显示 MetaWeblog 登录名、访问令牌查看入口,以及 MetaWeblog 访问地址。

四、踩坑 1:用户名容易看错

最开始我把博客园主页路径里的 zsnhweb 当成用户名尝试,结果认证失败。

后来又把账号昵称误认为登录名,也失败了。最终以博客园 MetaWeblog 设置页显示的登录名为准,才确认正确用户名。

经验是:MetaWeblog 发布时不要猜用户名,要直接看博客园后台显示的 MetaWeblog 登录名

五、踩坑 2:Personal Access Token 和 MetaWeblog 访问令牌要分清

博客园账号中心里有 Personal Access Token 页面,也有 MetaWeblog 设置页里的访问令牌入口。

这次排查中发现,MetaWeblog 发布更应该以 MetaWeblog 设置页中显示或查看到的访问令牌为准。

也就是说,脚本里的 password 字段并不是博客园登录密码,而是访问令牌。

六、踩坑 3:验证脚本一开始误判了结果

我先用 metaWeblog.getCategories 做只读验证。这个方法不会发布文章,只是读取博客分类。

第一次脚本对 XML 返回内容的判断比较粗糙,把正常返回也误判成失败。后来改为直接检查返回中是否存在 fault 信息,才确认接口认证已经通过。

这说明做接口联调时,不仅要看 HTTP 状态码,还要正确解析业务层返回内容。

七、测试发布成功

配置修正后,我用 metaWeblog.newPost 发布了一篇测试文章,博客园返回了文章 ID,说明发布链路已经打通。

测试文章成功公开发布,证明 Hermes 已经可以通过 MetaWeblog 接口向博客园发文。

八、分类处理

通过 metaWeblog.getCategories 读取博客园分类时,发现当前可用分类中有 AI 相关的网站分类,例如:

「网站分类」AI综合

因此本文发布时归入 AI 相关分类。后续如果需要更精确的个人随笔分类,比如单独的“AI”,可以在博客园后台新建分类后,再让 Hermes 使用该分类发布。

九、最终效果

现在,发布流程已经变成:

  1. 我把内容发给 Hermes。
  2. Hermes 整理标题、正文、结构和分类。
  3. Hermes 调用博客园 MetaWeblog 接口发布文章。
  4. 发布成功后返回博客园文章链接。

十、总结

这次接入的关键点有三个:

  • 必须在博客园后台开启 MetaWeblog 客户端访问。
  • 用户名要使用后台显示的 MetaWeblog 登录名。
  • 密码字段要填写 MetaWeblog 访问令牌,而不是普通登录密码。

完成这些配置后,Hermes 就可以作为一个本地 AI 写作与发布助手,直接帮助我把内容发布到博客园。

文章摘自:https://www.cnblogs.com/zsnhweb/p/20134849