どうせ忘れるからメモ。

AS3からXMLRPCとやり取りする必要があってググってみるに、それ用のクラスがわっさわさ掛かったのでとりあえず1つチョイス。


XMLRPC for Actionscript 3.0 - Free Library


zipファイル名にはas3と書いてあるくせにサンプルファイルはAS2だったのでAS3にしたメモ。
とりあえずMTに新規エントリーのトコ。
エントリー日時(dateCreated)とかは無視すると投稿時刻になるっぽ。
パブリッシュしたらボタンも無しでいきなりポストなので間違って本ブログにポストしないように注意。



package {
import com.mattism.http.xmlrpc.*;
import com.mattism.http.xmlrpc.util.*;

import flash.display.Sprite;
import flash.events.ErrorEvent;
import flash.events.Event;

public class Main extends Sprite{
private const XMLRPC_URL:String = 'サーバcgi-bin/mt/mt-xmlrpc.cgi';
private const USER_ID:String = 'ログイン名';
private const PASSWORD:String = 'パスワード';
private const BLOG_ID:int = ブログの番号;

public function Main(){
var post:Object = {title:'エントリータイトル', description:'エントリー本文'};
var myRPC:Connection = new ConnectionImpl(XMLRPC_URL);
// ブログID
myRPC.addParam(BLOG_ID, XMLRPCDataTypes.INT);
// ログイン名
myRPC.addParam(USER_ID, XMLRPCDataTypes.STRING);
// WEBサービスのパスワード
myRPC.addParam(PASSWORD, XMLRPCDataTypes.STRING);
myRPC.addParam(post, XMLRPCDataTypes.STRUCT);
// 公開設定
myRPC.addParam(true, XMLRPCDataTypes.BOOLEAN);

myRPC.addEventListener(Event.COMPLETE, rpcCompleteHandler);
myRPC.addEventListener(ErrorEvent.ERROR, rpcErrorHandler);
myRPC.call('metaWeblog.newPost');
}

function rpcCompleteHandler(evt:Event):void{
trace('Complete');
}

function rpcErrorHandler(evt:ErrorEvent):void{
trace('falut');
}
}
}


アレのあの部分、Flash > PHP > XMLRPCってやったけどコレでよかったのか。