これはなかなか便利そう。
(ノ・・)ン。。。。。。(((●コロコロッ
今までも、trackback, ping, xmlrpcなどAPIを使ってやりとりするサポートクラスはPEARにもあったが、
今度はXMLRPCをAPI利用する事自体をクラス化したものが登場した。
それが
PEAR::Services_Blogging
利用できるAPIは
それぞれ出来ることが異なっているので、
抽象化するのはなかなか難しいと思うが、
いろんなAPIに対応していくれると非常にありがたい。
ただし、このライブラリはPHP5以上が必要。
利用できる機能は
と一通り揃えているので、
遠隔でブログツールを制御するツールや、
ケータイ投稿するツールなど
幅広い利用が考えられる。
まずはブログの一覧を取得。
取得にはBloggerAPIを使用する。
<?php require_once 'Services/Blogging.php'; $user = 'dozo'; $pass = 'hogeo'; $host = 'dozo.matrix.jp'; $path = 'pear/index.php' $blogObj = Services_Blogging::factory('Blogger', $user, $pass, $host, $path); $posts = & $blogObj->getBlogs(); var_dump( $posts ); ?>
結果は?
[0] => Services_Blogging_Blog Object ( [values:protected] => Array ( [id] => 1 [name] => Blog 1 [url] => http://dozo.matrix.jp/ ) ) [1] => Services_Blogging_Blog Object ( [values:protected] => Array ( [id] => 2 [name] => Blog 2 [url] => http://dozo.matrix.jp/ ) )
ちゃんと一覧が取れている。
通信がうまくいっている証拠だ。
次は投稿。
コードは上からの続きね。
<?php $postObj = $blogObj->createNewPost(); $postObj->content = "遠隔でブログに投稿してみましたよー\r\n\r\nちゃんと動いてますかー"; $blogObj->setBlogId('1'); $blogObj->savePost($postObj); echo 'post id: ' . $postObj->id; ?>
postidが帰ってきている。
実際にブログを見てみるとちゃんと記事が投稿されているのがわかる。
後はBlogID, PostId?を如何にとってくるかを考えるだけ。
それをsavePostに当てれば編集、deletePostに当てれば削除になる。
ちょっと待て、一言言わせろ
タイトル投稿できねえよ!!(゜Д゜)
それはBloggerAPIを作ったGoogleに言って欲しい。
出来れば私もMetaWeblog?を使いたい。
だが、なぜかこのライブラリは必須のはずのBlogID指定がBloggerAPIでしかできない。
しかも型がProtectedなのでHackする以外にセットする方法がない。
要望を出そうとしたがMLに入れと言われやめた。
(執筆時ver1.1)
ちょっと要望も書いてみたり。
mtAPIも欲しいなぁ。
ハマリポイント
MTユーザは違う意味でハマリポイントが多い。 詳しくはこちら。