JSON API

概要


JSON APIへは、http://www.illustbook.net/api_クラス名?method=関数名&引数、でアクセスします。返り値はJSONオブジェクトです。外部サーバからアクセスする場合は、通常のgetメソッドで問題ありませんが、ローカルのJavaScriptからアクセスされる場合、クロスドメイン制約を回避する必要があります。そこで、APIアクセスの引数の最後に、callback=関数名、を追加することでJSONPでアクセスすることができます。

 

イラストブックのJavaScript APIでは、ネットワークアクセスAPIが提供されており、同じドメインの場合は通常のget、それ以外の場合はJSONPを自動的に選択して、JSON APIにアクセスしています。JavaScript APIを使用してJSON APIにアクセスする例を、次に示します。

function test_jsonp(){
	user_id=illustbook.user.getCurrentUser()
	var api_url="http://www.illustbook.net/api_user"
	illustbook.request.get(api_url+"?method=getProfile&user_id="+user_id,test_callback)
}
	
function test_callback(oj){
	alert(oj.response.name);
}

 

この例ではapi_userにアクセスしていますが、get関数が自動的に、http://www.illustbook.net/api_user?method=getProfile&user_id=xxx&callback=my_callback、という形式に変換してscriptタグを動的に生成して、処理結果をmy_callbackに通知します。

 

コールバックには次のプロパティを持つオブジェクトが通知されます。通知されるオブジェクトは、JavaScript APIとJSON APIで共通です。

プロパティ返値返値の詳細
statusAPIアクセス結果が返ります"success":APIアクセスに成功した
"overcapacity":帯域制限された
"nodata":保存されているデータが存在しない
"failed":APIアクセスに失敗した
messagestatusが"success"以外の場合に、エラーの詳細が返りますUTF8の日本語文字列、statusが"success"の場合は空文字列
responseAPIアクセスの処理結果APIに応じたオブジェクトもしくはオブジェクトのリスト

 

 

 

クラスとオブジェクト一覧


>クラス一覧

クラス役割
feedフィードを取得
userユーザ情報を取得
bookmarkブックマーク情報を取得
perpetuationデータを保存

 

 

>オブジェクト一覧

オブジェクト役割
threadイラスト情報
bbsボード情報
appアプリ情報
feedフィード情報
userユーザ情報
perpetuaion_data保存した情報

 

 

feedクラス


feedクラスではイラストブックの最新情報を取得することができます。次の例では、最近追加されたイラストのタイトルを表示します。

function test_feed(){
	user_id=illustbook.user.getCurrentUser()
	var api_url="http://www.illustbook.net/api_feed"
	var args="offset=0&limit=1&order=new"
	illustbook.request.get(api_url+"?method=getThreadList&"+args,feed_callback)
}
	
function feed_callback(oj){
	var thread_list=oj.response;
	alert(thread_list[0].title);
}

 

メソッド概要引数返値
getThreadListスレッドリストの取得 bbs_id:ボードのID 省略時は全てのボード
offset:開始オフセット
limit:取得する数(最大100)
order:並び順(new/applause/bookmark/moper)
threadオブジェクトのリスト

非公開ユーザの情報は返らないため返り値はlimitより少ない場合があります。
offsetは非公開ユーザを含めて指定します。
データはキャッシュされます。

 

 

userクラス


userクラスではイラストブックのユーザ情報を取得することができます。

メソッド概要引数返値
getUserユーザの基本情報を取得user_id:ユーザIDuserオブジェクト
getFollowフォローしているユーザを取得user_id:ユーザIDuserオブジェクトのリスト
キャッシュされます
getFollowerフォローされているユーザを取得user_id:ユーザIDuserオブジェクトのリスト
キャッシュされます
getProfileユーザのプロフィールを取得user_id:ユーザIDオブジェクト

profile:プロフィール
getBbsListユーザのレンタルしているボードのリストを取得user_id:ユーザIDbbsオブジェクトのリスト
getThreadListユーザの投稿したイラストのリストを取得user_id:ユーザIDthreadオブジェクトのリスト
getTimelineタイムラインの取得 user_id:ユーザID
offset:開始オフセット
limit:取得する数(最大100)
order:並び順(new)
feedオブジェクトのリスト

指定したユーザのフィードが返ります。
削除されたフィードの情報は返らないため返り値はlimitより少ない場合があります。
getHomeTimelineホームタイムラインの取得 user_id:ユーザID
offset:開始オフセット
limit:取得する数(最大100)
order:並び順(new)
feedオブジェクトのリスト

指定したユーザと指定したユーザのフォローしているユーザのフィードが返ります。
削除されたフィードの情報は返らないため返り値はlimitより少ない場合があります。

 

 

bookmarkクラス


bookmarkクラスでは、ユーザをキーとしてブックマークしているイラストを取得したり、イラストをキーにしてブックマークしているユーザを取得するこができます。

メソッド概要引数返値
getThreadListブックマークしているイラストを取得user_id:ユーザIDthreadオブジェクトのリスト
getBbsListブックマークしているボードを取得user_id:ユーザIDbbsオブジェクトのリスト
getThreadUserListイラストをブックマークしているユーザのリストを取得thread_key:スレッドのキーuserオブジェクトのリスト
getBbsUserListボードをブックマークしているユーザのリストを取得bbs_key:ボードのkeyuserオブジェクトのリスト
getAppUserListアプリをブックマークしているユーザのリストを取得app_key:アプリのkeyuserオブジェクトのリスト

 

 

perpetuationクラス


perpetuationクラスでは、イラストブックにデータを保存したり、イラストブックからデータを読み込んだりすることができます。保存形式はキーバリューストアとなり、実データの文字列と一緒に、データのソートのための数値を格納することができます。保存時にはユーザアカウントとアプリIDを認証するため、他のユーザのデータや、他のアプリのデータを書き換えることはできません。また、ローカル環境からは動作しません。

次の例では、"test_data"という名前でデータの保存を行なっています。

function test_put_data(){
    var data_obj=[];
    data_obj.int_data=10;
    data_obj.text_data="test";

    app_key=illustbook.app.getAppKey();
    user_id=illustbook.user.getCurrentUser();
    data_key="test_data";
    args="app_key="+app_key+"&user_id="+user_id+"&data_key="+data_key;
    illustbook.request.post("api_perpetuation?method=putData&"+args,data_obj,put_data_callback);
};

function put_data_callback(oj){
    alert("put:"+oj.status);
}

次の例では、"test_data"という名前からデータの読込を行なっています。

function test_get_data(){
    app_key=illustbook.app.getAppKey();
    user_id=illustbook.user.getCurrentUser();
    data_key="test_data";
    args="app_key="+app_key+"&user_id="+user_id+"&data_key="+data_key;
    illustbook.request.get("api_perpetuation?method=getData&"+args,get_data_callback);
}

function get_data_callback(oj){
    alert("get:"+oj.status+" int_data:"+oj.response.int_data+" text_data:"+oj.response.text_data);
}

また、アプリケーションの設定においてランキングに使用するdata_keyを指定することで、自動的にアプリにユーザランキングを追加することができます。ランキングはint_dataでソートされ、text_dataが画面に表示されます。

メソッド概要引数返値解説
putDataデータの保存app_key,data_key,user_id,text_data,int_dataなしdata_keyをキーとしてtext_dataおよびint_dataを保存します。POSTメソッドでデータを送信する必要があります。JSON APIには対応していません。ログイン中かつプレイしているアプリでない場合はエラーが返ります。保存に成功したかどうかはコールバックのstatusを確認します。
getDataデータの読込app_key,data_key,user_idperpetuation_dataオブジェクトdata_keyをキーとしてtext_dataおよびint_dataを読み込みます。保存しているデータが存在しない場合はstatusにnodataが返ります。
getRankingランキングの取得app_key,data_key,orderuserオブジェクトのリスト+text_data+int_datadata_keyをキーとしてランキングを読み込みます。orderにはdescending(降順)もしくはascending(昇順)を指定します。

 

 

threadオブジェクト


threadオブジェクトにはイラストの情報が入ります。イラストからブックマークを検索する場合はthreadオブジェクトのkeyプロパティを使用します。

プロパティ詳細
titleタイトル
author投稿者
summary要約コメント
thread_urlスレッドへのURL
create_date作成日時
thumbnail_urlサムネイル画像へのURL(100px、正方形)
thumbnail2_urlサムネイル画像へのURL(200px、非正方形)
image_urlイラスト画像へのURL、アプリでの使用が禁止されている場合は空文字列が返ります
widthイラストの横幅
heightイラストの高さ
applause拍手の数
bookmarkブックマークの数
commentコメントの数
keyオブジェクトへのキー

 

 

bbsオブジェクト


bbsオブジェクトにはボードの情報が入ります。

プロパティ詳細
titleタイトル
bbs_urlBBSへのURL
thumbnail_urlサムネイル画像へのURL(100px、正方形)
bookmarkブックマークの数
keyオブジェクトへのキー

 

 

appオブジェクト


appオブジェクトにはアプリの情報が入ります。

プロパティ詳細
app_idアプリID
nameアプリの名前
app_urlアプリへのアドレス
icon_urlアイコンへのURL
keyオブジェクトへのキー

 

 

 

feedオブジェクト


feedオブジェクトにはフィードの情報が入ります。

プロパティ詳細
modeフィードの内容に応じて次の値が入ります。
bbs_new_illust:新規イラストの投稿
new_bookmark_thread:イラストのブックマーク
new_follow:ユーザをフォロー
new_comment_thread:イラストへのコメント
new_bookmark_bbs:ボードのブックマーク
message:ツイート
from_userフィード発信者のuserオブジェクト
to_userフィード受信者のuserオブジェクト
follow_userフォローしたユーザのuserオブジェクト
bbs投稿先のbbsオブジェクト
thread投稿したイラストのthreadオブジェクト

通常、threadオブジェクトには必ずイラストを含みますが、feedオブジェクトの場合のみ、イラストを含まないthread(文字だけの投稿など)が返る場合があります。その場合、thread.image_urlとthread.thumbnail_urlが空文字列になります。
messageコメント
create_date作成日時
keyフィードオブジェクトへのキー

 

 

 

userオブジェクト


userオブジェクトにはユーザの情報が入ります。メールアドレスは取得できません。

プロパティ詳細
user_idユーザID
name名前
homepageホームページへのアドレス
icon_urlアイコンへのURL
profile_urlプロフィールへのURL

 

 

 

perpetuation_dataオブジェクト


perpetuation_dataオブジェクトにはperpetuaion apiで保存したデータが返ります。

プロパティ詳細
user_idユーザID
data_idデータID
text_dataテキストデータ
int_data整数データ

 

 

 

APIのアクセス制限


JSON APIは同一IPから3秒間に10回までアクセスすることができます。それを超えた場合は自動的にovercapacityエラーが返ります。アクセス制限はサーバの負荷に応じて今後変更される可能性があります。

 

 

次のページ(JavaScript API)

前のページ(プラットフォームの概要)

デベロッパーポータルへ戻る