MovableType 6 PHPでData APIにアクセスする

Data APIのアクセス先

APIの基本については藤本氏がセミナーのスライドを公開してくれていいます。
Data APIのエンドポイントはこのようになっています。
[MTまでのURL]/mt-data-api.cgi/v1/
私のブログにアクセスしてみると、
http://www.omnioo.com/mt/mt-data-api.cgi/v1/
なんにもパラメータがないので、{"error":{"code":404,"message":"Unknown endpoint"}}が返ってきます。一応これで正常に動いている感じです。エラーじゃ仕方ないので、きちんとしたところにアクセスしてみると、
[MTまでのURL]/mt-data-api.cgi/v1/sites/[ブログID]
http://www.omnioo.com/mt/mt-data-api.cgi/v1/sites/2
という感じで、ブログIDでもってアクセスしてみます。だらっと返ってきますが、整理すると、
{
"name":"omnioo lab.", #ブログ名
"archiveUrl":"http://www.omnioo.com/omnioolab/", #ブログのアーカイブURL
"url":"http://www.omnioo.com/omnioolab/", #ブログURL
"id":"2", #ブログID
"class":"blog", #ブログかウェブサイトかみたいなところ
"description":"¥u30aa¥u30e0¥u30cb¥u30aa¥u30e9¥u30dc WEB, LAMP, jQuery, IT¥u306e¥u304a¥u8a71" #ブログの概要
}

こういう感じで情報が返ってきます。これはFacebookさながらといった感じで、むしろFacebookと仕様が同じです。ここではまだMTにログインしていないので、表面的な情報しか取得できませんが、ログインしてからエンドポイントにアクセスするといろいろな情報が取り出せます。日本語はエンコードされて出力されますがデコードすると読めるようになるので大丈夫です。
主なエンドポイントはこんな感じです。

ブログ: [MTまでのURL]/mt-data-api.cgi/v1/sites/2
ユーザー: [MTまでのURL]/mt-data-api.cgi/v1/users/1
ブログ記事(個別): [MTまでのURL]/mt-data-api.cgi/v1/sites/2/entries/630
ブログ記事(複数): [MTまでのURL]/mt-data-api.cgi/v1/sites/2/entries
カテゴリー: [MTまでのURL]/mt-data-api.cgi/v1/sites/2/categories

PHPでAPIにアクセスしてみる

PHPでアクセスする際のやり方は、
file_get_contents('[APIのURL]');
という感じです。最近のだいたいのAPIはこれなので問題ないです。で、json_decode()して日本語が読めるようにしてあげる。オブジェクトが返ってくるので、それぞれの値をオブジェクトから取り出すという感じです。Sample

<?php
$json = file_get_contents('http://www.omnioo.com/mt/mt-data-api.cgi/v1/sites/2/entries');
if ($json === false) {
exit('アクセス失敗');
}
$response = json_decode($json);
if ($response === null) {
exit('レスポンスの形が不正');
}
if (isset($response->items) && count($response->items)) {
$entries = $response->items;
print '<ul>';
for ($i = 0; $i < count($entries); $i++) {
print '<li>';
print $entries[$i]->title;
print '(' . date('Y年m月d日', strtotime($entries[$i]->date)) . ')';
print '</li>';
}
print '</ul>';
}
else {
print '<p>記事がありません。</p>';
}
?>

上記チュートリアルではmtタグで設定した内容がそのまま出てます。(みたいなやつ)
ですが、GETのパラメータを付けてあげることでいろいろ調整できます。
[MTまでのURL]/mt-data-api.cgi/v1/sites/[ブログID]/entries?limit=[値]
http://labo.omnioo.com/develop/mtdataapi/entries100.php
100件出そうと思ったらlimitで値を指定しあげます。その他のfields,offset,includeids,excludeisdなどあります。

書籍を買った時のチュートリアルはここ
http://book.mynavi.jp/support/pc/4861/