« 生涯2度目のJAF | メイン | 久しぶりのクリックブリック »
2005年8月10日
XML-RPCでMovableTypeに投稿してみよう!
MovableTypeの管理画面からエントリーを投稿するのは、基本的にはあまり不自由していないんだけど、いろいろあってプログラムからMovableTypeにエントリーを投稿できるようにしたいと思い、XML-RPC+PHPでMovableTypeに投稿するものを作ってみました。
以下、サンプルプログラムです。
ちなみに、TrackBackPingが正常に動いているかは不明です。
エントリーの投稿までは結構すんなりできたんだけど、投稿したエントリーのカテゴリを設定するところでかなり悩みました。
$categ = new XML_RPC_Value(array($categstruct,$categstruct1), 'array');
↑この一行にたどり着くまでが長かった・・・。
<?php
require_once("XML/RPC.php"); //XML-RPC package 読み込み
$GLOBALS['XML_RPC_defencoding'] = "UTF-8";
//XML-RPCインタフェース、ユーザ定義
$mt_host = "ホスト名 たとえば finder-web.net";
$mt_xmlrpc_path = "xmlrpc.cgiへのパス たとえば/cgi-bin/mt/mt-xmlrpc.cgi";
$mt_user = "ユーザ名";
$passwd = "パスワード";
//クライアントの作成
$c = new XML_RPC_client( $mt_xmlrpc_path, $mt_host, 80 );
$appkey = new XML_RPC_Value( '', 'string' );
$username = new XML_RPC_Value( $mt_user, 'string' );
$passwd = new XML_RPC_Value( $passwd, 'string' );
$blogid = new XML_RPC_Value( '3', 'int' );
//投稿テスト
$cate_id = "主カテゴリーのID";
$sub_cate_id = "サブカテゴリーのID";
$entry_title = "タイトル";
$entry_title = mb_convert_encoding($entry_title, "UTF-8", "auto");
$content = "内容";
$content = mb_convert_encoding($content, "UTF-8", "auto");
$text_more = "続き";
$text_more = mb_convert_encoding($text_more, "UTF-8", "auto");
$excerpt = "概要";
$excerpt = mb_convert_encoding($excerpt, "UTF-8", "auto");
$keywords = "キーワード";
$keywords = mb_convert_encoding($keywords, "UTF-8", "auto");
$content = new XML_RPC_Value(
array("title" => new XML_RPC_Value($entry_title),
"description" => new XML_RPC_Value($content),
"dateCreated" => new XML_RPC_Value(""),
"mt_allow_comments" => new XML_RPC_Value(""),
"mt_allow_pings" => new XML_RPC_Value(""),
"mt_convert_breaks" => new XML_RPC_Value(""),
"mt_text_more" => new XML_RPC_Value($text_more),
"mt_excerpt" => new XML_RPC_Value($excerpt),
"mt_keywords" => new XML_RPC_Value($keywords),
"mt_tb_ping_urls" => new XML_RPC_Value(array(
new XML_RPC_Value("http://www.blogpeople.net/servlet/weblogUpdates"),
new XML_RPC_Value("http://ping.bloggers.jp/rpc/"),
new XML_RPC_Value("http://rpc.weblogs.com/RPC2"),
new XML_RPC_Value("http://bulkfeeds.net/rpc")),'array')
), "struct");
$publish = new XML_RPC_Value( '0', 'boolean' );
$post = new XML_RPC_Message(
'metaWeblog.newPost',
array($blogid, $username, $passwd,$content,$publish) );
//メッセージ送信
$result = $c->send($post);
$postid = XML_RPC_decode( $result->value() );
if( !$result ){
exit('Could not connect to the server.');
}
//送信したメッセージにカテゴリをつける
//主カテゴリー
$categstruct = new XML_RPC_Value(
array(
"categoryId" => new XML_RPC_Value($cate, 'string'),
"isPrimary" => new XML_RPC_Value(1, 'boolean'),
),'struct');
//サブカテゴリー
$categstruct1 = new XML_RPC_Value(
array(
"categoryId" => new XML_RPC_Value($sub_cate, 'string')
),'struct');
$categ = new XML_RPC_Value(array($categstruct,$categstruct1), 'array');
$p_id = new XML_RPC_Value( $postid,'int' );
$set_category = new XML_RPC_Message(
'mt.setPostCategories',
array($p_id, $username, $passwd,$categ) );
$result = $c->send($set_category);
if( !$result ){
exit('Could not set category.');
}else{
print "add entry compleated";
}
?>
投稿者 high_booster : 2005年8月10日 12:39 コメント(0)
関連するエントリー
-
YahooとGoogleの検索結果って結構違うよね。[BLOG]
あたり前のことですが、ホームページはアクセスしてもらってナンボです。 そのためにも、YahooやGoogleの検索で上位に表示されることはとても重要です。 そ
-
COUNTDOWN JAPAN 0910[FES]
年末恒例カウントダウンジャパンフェスに行ってまいりました。 見たバンドは、気志団、バースディ、SpecialOthers、SchoolFoodPanishmen
-
iPod touchがFMラジオになる?[iPod]
iPod touchがFMラジオになるアプリをAppleが開発しているそうです。 非常に気になりますね。だけど基本都内の地下鉄移動だから、あんまり聞く機会もな
-
トロピカランドで買ったレッドビーシュリンプの飼育水のpHを計測してみたところ・・・・[アクアリウム]
先日、トロピカランドのシルバーウィークセールで購入したレッドビーシュリンプの飼育水のpHを計測してみました! 熱帯魚ショップ、熱帯魚のプロが作った飼育水のpH
-
bounceにiLLのインタビューが掲載されています。[スーパーカー]
元スーパーカーのナカコーのソロプロジェクト iLLの4枚目のアルバム「Force」がリリースされ、そのインタビューがbounce.comに掲載されています。
-
久しぶりにpHを計ってみました。その結果は?[アクアリウム]
久しぶりに我が家の水槽のpHを計ってみることに。 pHを計るのは1ヶ月ぶりぐらい。本当は、1週間に1回は計るのがベストだそうで。 水質の変化を早々に察知できれ
-
rakuten APIをお勉強中[雑記]
仕事がひと段落して、ちょっと時間が出来たので前々から気になっていたrakuten APIというのを勉強中。 これ、AMAZON WEB Serviceと基本的に
-
フレームモス 活着実験 経過報告(2週間目)[アクアリウム]
巷で人気のウォーターフェザーのリシアストーン活着実験、経過報告です。 リシアストーンに巻きつけてから、約2週間経過しました。ウォータフェザーが新しい葉を伸ばし始
-
最近の水槽の様子[アクアリウム]
写真で見るとおり、ビーシュリンプ水槽の右側だけ、水草で覆いつくされています。 水槽の左側、というか中央にあった侘び草をトリミングしたせいなんですが・・・。 右側
-
侘び草 トリミングの経過報告(5日目)[アクアリウム]
侘び草のトリミングから5日経過。 SH-06Aで撮った写真の威力も含めて紹介です。 まだ、伸び始めたばかりって感じです。これからガンガン伸びてくれるでしょう。















コメントしてみる
気軽にコメントしてみてください。コメントしてもらえるととてもうれしいです。