华为云博客自动发布:window.saveBlog 的三个关键细节
【摘要】 做华为云博文自动发布时,我在 UI 层卡了很久:内容填进去,点发表没反应;偶尔还会整页刷新,标题和正文全被清空。 后来发现真正该用的是编辑器自带的 window.saveBlog() 。 一、免责声明只是前端门禁 发表按钮变灰,通常是因为免责声明没勾。但在 saveBlog 内部第一行就是: 也就是说,勾选框只服务于人工点击这条路径。直接调函数时会被强制置 1,不需要勾。 二、
做华为云博文自动发布时,我在 UI 层卡了很久:内容填进去,点发表没反应;偶尔还会整页刷新,标题和正文全被清空。
后来发现真正该用的是编辑器自带的 window.saveBlog()。
一、免责声明只是前端门禁
发表按钮变灰,通常是因为免责声明没勾。但在 saveBlog 内部第一行就是:
submitData.disclaimerFlag = 1;
也就是说,勾选框只服务于人工点击这条路径。直接调函数时会被强制置 1,不需要勾。
二、csrf 从函数里取,不在 cookie 里
社区不少文章教人抓 hd-csrf cookie,实际更简单:
headers: { 'Content-Type': 'application/json', 'csrf': getAinfo() }
getAinfo() 是页面自带函数,返回当前会话的 csrf 值;登出状态时返回 nologin。调之前先判断一下,比事后看 403 省事。
三、域名必须用 devdata
发布接口挂在 devdata.huaweicloud.com,不是页面所在的 bbs.huaweicloud.com。用 bbs 域名会稳定 404,而且报错信息不会提示域名问题,容易误判成接口下线。
完整请求体字段:
titleData标题contentData正文 HTML(不是 Markdown)introData摘要tagNameData标签,逗号分隔blogResource: 1原创,isReship: 1允许转载isOriginal: 1,isLock: 0
成功返回 HD.92300000 并带上 blogId,随后页面跳转 /processcomplete?type=blog。
小结
能调页面原生函数就别点按钮。DOM 状态和组件内部状态不同步时,界面层的自动化成功率会非常不稳定,而函数调用只依赖登录态一个前提。
注:本文由自动化脚本按上述方法发布,属于方法本身的递归验证。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)