Home > framework > 开源项目as3wordpresslib测试版发布

开源项目as3wordpresslib测试版发布

写在前面的话:
艾睿原创团队群的讨论时给我的灵 感,as3wordpresslib项目从7月份开始勾划,当中由于工作原因搁置了2个月,其实实际的开发时间也就只有短短2周左右,由于需要筹备婚事, 我感觉今后几个月之内不能全力support这个项目,但是不想让项目夭折,所以选择今天把这个完成度90%的项目发布出来,希望感兴趣的朋友能学习它, 使用它,完善它,推广它。

项目简介

什么是as3wordpresslib?

as3wordpresslib 是一套as3类库,这套类库实现了wordpress 2.8中基于xmlrpc的service接口。flex/flash开发人员利用这套类库就可以轻易的访问wordpress后台,而把注意力集中在打 造自己的个性化Blog UI。

使用as3wordpresslib你可以做些什么?

1. 使用Flex/Flash技术,实现blog的UI,打造个性化blog。
2. 使用Flex/AIR技术,实现blog离线撰写发布程序。

开发as3wordpresslib的目的?

1. 使得希望学习flex/flash开发而又缺少后台支持的初级程序员可以迅速方便的focus在自己感兴趣的领域。(其实这是本project的真正目 的,希望每个初学者都可以毫无后顾之忧的使用as3wordpresslib写出自己第一个真正意义上的Hello World )
2. 希望能带动其他的Flexers能和我一起做些虽然看似dirty work但是对于Flex应用推广和发展却有较大帮助的公益劳动。

为什么选择WordPress作为Blog后台

1. wordpress 目前非常火热,大部分技术人员都拥有自己的wordpress blog。(良好的群众基础)
2. wordpress 更新迅速,支持用户自定义插件皮肤,这正是Flex项目在开发中需要考虑的问题。

项目计划

* xmlrpc协议学习
* 开发环境搭建
* 开发架构搭建
* wordpress xmlrpc api接口定义
* wordpress xmlrpc api具体实现
* 接口测试
* 接口asdoc comments 撰写
* Demo编写
* Guide撰写
* 宣传与发布
* bug征集
* 升级维护

最新近况:

2009-08-04:API Reference Document及类包aswplib.swc已经发布(Download面板有下),邀请了艾睿原创团队的一些朋友先进行内测。
2009-08-03:接口的asdoc和api实现基本都已完成,除了少数几个only for AIR以及在测试过程中没有调通的接口。接下来就开始着手准备Demo,在实际开发中去解决上个阶段没有完成的一些遗留问题。
参考资料

项目地址:
http://code.google.com/p/as3wordpresslib/
SVN地址(含lib和FB4版最佳实践源码):
http://as3wordpresslib.googlecode.com/svn/trunk/
接口完成情况
WordPress API

No. operation name interface implement asdoc assigner remark
1 getUsersBlogs / / / momoko 完成
2 getTags / / / momoko 完成
3 getCommentCount / / / momoko 完成
4 getPostStatusList / / / momoko 完成
5 getPageStatusList / / / momoko 完成
6 getPageTemplates / / / momoko 完成
7 getOptions / / / momoko 完成
8 setOptions / / / momoko 完成
9 deleteComment / / / momoko 完成
10 editComment / / / momoko 完成
11 newComment / / / momoko 完成
12 getCommentStatusList / / / momoko 完成
13 getPage / / / momoko 完成
14 getPages / / / momoko 完成
15 getPageList / / / momoko 完成
16 newPage / / / momoko 完成
17 deletePage / / / momoko 完成
18 editPage / / / momoko 完成
19 getAuthors / / / momoko 完成
20 getCategories / / / momoko 完成
21 newCategory / / / momoko 完成
22 deleteCategory / / / momoko 完成
23 suggestCategories / / / momoko 完成
24 uploadFile / / / momoko only for AIR 未测试
25 getComment / / / momoko 完成
26 getComments / / / momoko 完成

Blogger API

No. operation name interface implement asdoc assigner remark
1 getUsersBlogs / / / momoko 完成
2 getUserInfo / / / momoko 完成
3 getPost / / momoko 完成
4 getRecentPosts / / / momoko 完成
5 getTemplate / / momoko 该接口不能正常工作
6 setTemplate / / momoko 该接口不能正常工作
7 newPost / / / momoko 完成
8 editPost / / / momoko 完成
9 deletePost / / / momoko 完成

MetaWeblog? API

No. operation name interface implement asdoc assigner remark
1 newPost / / / momoko 完成
2 editPost / / / momoko 完成
3 getPost / / / momoko 完成
4 getRecentPosts / / / momoko 完成
5 getCategories / / / momoko 完成
6 newMediaObject / / / momoko only for AIR 未测试
7 deletePost / / / momoko 完成
8 getTemplate / / / momoko 底层实现调用了BloggerService?接口 不能工作
9 setTemplate / / / momoko 底层实现调用了BloggerService?接口 不能工作
10 getUsersBlogs / / / momoko 完成

MovableType? API

No. operation name interface implement asdoc assigner remark
1 getCategoryList / / / momoko 完成
2 getRecentPostTitles / / / momoko 完成
3 getPostCategories / / / momoko 完成
4 setPostCategories / / / momoko 完成
5 supportedMethods / / / momoko 完成
6 supportedTextFilters / / / momoko 测试时无返回结果,待进一步验证
7 getTrackbackPings / / / momoko 测试时无返回结果,待进一步验证
8 publishPost / / / momoko 完成


as3wordpresslib api用户指南

1 在本站“Downloads”下载as3wplib.swc(目前发布的1.0版本只支持Flex 4 SDK,以后会发布 SDK 3的版本)
2 在项目中导入swc类包
* 在FlashBuilder? 4中对新建的项目点击右键,选择“Properties”
* 在弹出面板左侧选择“Flex Build Path”一栏,在相应的右侧面板中选择“Library path” tab
* 点击“Add SWC”按钮导入之前下载的as3wplib.swc

3 为项目配置wordpress的xmlrpc地址(仅针对Flex 4 SDK,Flex3和flash的配置flashvars方法请自行google)
* 打开项目目录中的“html-template”文件夹下的“index.template.html”文件
* 对38行附近代码作如下修改,增加一个属性 flashvars.wp_xmlrpc,其指向的就是wordpress的xmlrpc地址。

var xiSwfUrlStr = “${expressInstallSwf}”;
var flashvars = {};
flashvars.wp_xmlrpc = “http://127.0.0.1/wordpress/xmlrpc.php”;
var params = {};
params.quality = “high”;

4 WordPress提供的API每一处调用都需要传递用户名密码,这么做对于我们使用Flex制作Blog UI来说非常不便,因为Flex不能load本地文件,这对于账号配置来说是非常不安全的,幸好WordPress提供个几种角色,我们只需配置一个只读 角色给API即可。
* 使用管理员账号登陆WordPress,在User管理处新增一个Subscriber(订阅者)账号,这个账号只有只读权限。
* 同样使用flashvars方式,将Subscriber用户名密码配置在这里

var xiSwfUrlStr = “${expressInstallSwf}”;
var flashvars = {};
flashvars.wp_xmlrpc = “http://127.0.0.1/wordpress/xmlrpc.php”;
flashvars.username = “Subscriber”;
flashvars.password= “123456″;
var params = {};
params.quality = “high”;

5 WordPress中的API有一点让我很费解,就是某些get操作也需要写权限,这样的话,我们配置的Subscriber账号就无法访问这些API, 我只好hack一些WordPress里xmlrpc.php中的代码了,将一些不合理接口的写权限验证给注释掉。(由于我现在无法统计出所有的不合情理 的借口,所以请使用尝鲜版的用户自行注释,以后我会给出我修改好的xmlrpc.php文件,用户只需替换即可)

* 注释方法以getCategories()方法为例注释 2786两行即可。
//if( !current_user_can( ‘edit_posts’ ) )
// return new IXR_Error( 401, ( ‘Sorry, you must be able to edit posts on this blog in order to view categories.’ ) );

6 在你的AS3代码第一次调用as3wplib之前,配置xmlrpc的路径
Flex4:Configuration.getInstance().xmlrpcUrl = FlexGlobals?.topLevelApplication.parameters["wp_xmlrpc"];
Flex3:Configuration.getInstance().xmlrpcUrl = Application.application.parameters["wp_xmlrpc"];
Flash:Configuration.getInstance().xmlrpcUrl = LoaderInfo?(this.root.loaderInfo).application.parameters["wp_xmlrpc"];
鸣谢:
艾睿原创群给予意见和帮助的朋友,特别是陆仕桑同学和kenshin

备注
这是我修改的xmrpc.php,不过只修改了几个主要接口,同学们可以自行根据Guide上的提示自行修改
最佳实践测试截图

aslib

Categories: framework Tags: , , ,
  1. No comments yet.
  1. No trackbacks yet.