使用xmlrpc接口控制wordpress

之前在windows下使用onenote写作的时候,是使用onenote自带的功能直接将写好的文章发送到博客中去的,现在到了mac下,此功能的快捷性不再.无奈只好定制自己的一键发送到博客.

想了想,apple script自己现在掌握还不好,定制自己的work flow也还一时不知如何入手,倒是想到之前使用onenote的时候,需要到博客后台管理界面启动个接口,随便查了下,查到这个接口是所谓的xml-rpc接口,也就是说通过xml来对wordpress进行远程调用,然后发布文章的接口.

既然明白了原理,接下来的事情就简单了,我之前有种中二病,有什么问题老想自己从编译器开始全部重新解决一下,后来在搜狗的时候,leader李东阳告诉自己一个深刻的道理,不要重复造轮子.这才慢慢地把这个贱毛病给扭转过来,算是上了道.

我一直认为自己是个科研工作者,虽然做的码农活的,不过时常看看论文,推个公式,聊以自谓下:哥还没有完全脱离理论界.

做事先求解决.再说进一步的问题.

首先在git里找wordpress,找到了一个包,但是几乎一直没有维护,将其拿过来看了看,只有一个主文件,定义了一个类,而且使用的主要是xmlrpclib这么一个库.

之后又转到了google的站长工具那里瞅了两眼,然后终于找到了正确的keywords.

python xmlrpclib wordpress

ok,发现了一个封闭了xmlrpclib的一个python包,针对wordpress.很好.立即pip一下,使用之.

readthedocs中,有这包的使用文档.http://python-wordpress-xmlrpc.readthedocs.org/en/latest/overview.html

简单地搬运一下quickstart.

from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import GetPosts,NewPost
from wordpress_xmlrpc.methods.users import GetUserInfo

wp = Client('http://mysite.wordpress.com/xmlrpc.php', 'username', 'password')
#这里要注意,我刚开始使用了”作者”权限的帐号,结果并不能work,后来换了管理员帐号才正常.
wp.call(GetPosts())
#使用wp实例初始化一个连接,并获取帖子.

post = WordPressPost()
post.title = 'My new title'
post.content = 'This is the body of my new post.'
post.terms_names = {
	'post_tag': ['test', 'firstpost’],
	'category': ['Introductions', 'Tests’]}

回头写一个基于一键发送到wordpress的workflow