背景描述:想着把原来Discuz平台网站转换到Wordpress博客平台,但是手动转移几千个帖子,工作量很大。于是,想着要开发一个Python自动化程序来完成Discuz转移Wordpress的工作。

使用Wordpress的XML-RPC功能进行文章自动化发布时,按标准设置了用户名和密码以及文章的格式,如下代码所示:

post = {
            'blog_id': '1',
            'username': wp_username,
            'password': wp_pass,
            'content': {
                'title': get_content[0],
                'description': get_content[3],
                'mt_keywords': get_content[1],
                'mt_excerpt': get_content[3].text[:45],
                'mt_allow_comments': '1',
                'mt_allow_pings': '1',
                'wp_slug': '',
                'categories': [get_content[2]],
                'wp_password': '',
                'publish': True,
            }
        }
但是代码执行时,抛出了错误xmlrpc.client.Fault: 403 用户名或密码不正确。这是怎么回事呢?

原因分析:小编在配置用户名和密码时,使用的是Wordpress后台登录用户和密码。查询了相关资料,通过第三方程序工具XML-RPC客户端发布文章,需要使用单独的应用程序密码。

如何开启和设置应用程序密码

在Wordpress后台找了很多地方,包含设置_撰写等位置都没有找到应用程序密码,最终在用户管理,用户编辑的底部找到了该设置,但该位置没有设置框。提示内容:可能处于开发环境等不是https的环境中,尝试设置环境状态后设置框可显示。

按着这个提示,进行了config.php文件环境的配置,但是配置修改后仍然没有出现应用程序密码设置框。

最终解决方法:

进入插件菜单,搜索Application Passwords Enable这个插件安装并启用,然后再回到用户编辑界面,底部应用程序密码区域就出现设置框了。使用方法:填写一个用于区别的应用程序名称,然后点击“新增的应用程序密码”,系统将自动生成一串密码,需要自行记录保存该密码,页面刷新后密码将不再显示。

将获取的应用程序密码,更新到Python程序中,用户名还是之前的用户名,再尝试登录发布就可以了!

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部