「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
Data API Library for Android(その3・初期化とDataAPI.sendメソッド)
Data API Library for Androidの解説その3です。
今回はライブラリの初期化とDataAPI.sendメソッドの使い方を解説します。
1.初期化
初期化を行うには、「DataAPI.init」というメソッドを実行します。
パラメータとして、以下の3つを取ります。
- Contextオブジェクト
- mt-data-api.cgi
- クライアントID
クライアントIDは、Data APIでMovable Typeにアクセスするアプリを表す文字列です。
半角英数字で任意のIDを決めて指定します。
例えば、Activityの作成時(onCreate)にData APIの初期化を行うとします。
また、クライアントIDを「example」にするとします。
この場合だと、onCreateメソッドを以下のように書きます。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout....);
DataAPI.init(this, "http://Movable Typeのインストール先/mt-data-api.cgi", "example");
...
}
2.DataAPI.sendメソッド
Data APIのオブジェクトを初期化すると、「DataAPI.send」というメソッドを使うことができます。
DataAPI.sendメソッドは、Data APIで行う処理に応じて、様々な引数を取ります。
引数は以下の順に指定します。
| 項目 | データ型 | 内容 |
|---|---|---|
| メソッド名 | Strimg | Data APIで行う処理のメソッド名を渡します。 JavaScriptライブラリでのメソッド名と同じものを使います。 |
| サイトID | int | 操作する対象のサイト(ウェブサイトまたはブログ)のIDを指定します。 メソッドによっては、サイトIDを指定しないものもあり、その場合はサイトIDを省略します。 |
| オブジェクトID | int | 操作する対象のオブジェクト(記事)等のIDを指定します。 メソッドによっては、オブジェクトIDを指定しないものもあり、その場合はオブジェクトIDを省略します。 |
| オブジェクト | JSONObject | オブジェクトの作成/更新を行うメソッドでは、オブジェクトをJSONObject型で表したものを指定します。 作成/更新以外のメソッドではこの引数は省略します。 |
| パラメータ | HashMap | メソッドのオプションのパラメータを指定します。 オプションのパラメータを指定しない場合は、この引数は省略します。 |
| リスナー | DataAPIListener | Data APIの実行結果を処理するリスナーを指定します。 |
DataAPIListenerクラスのオブジェクトには、「onResponse」と「onError」というメソッドを定義します。
onResponseメソッドには、通信が成功したときの処理を記述します。
onErrorメソッドには、通信に失敗したときの処理を記述します。
DataAPI.send(メソッド名, サイトID, オブジェクトID, オブジェクト, パラメータ, new DataAPIListener() {
@Override
public void onResponse(JSONObject resp) {
// 通信に成功したときの処理
}
@Override
public void onError(VolleyError error) {
// 通信に失敗したときの処理
}
});
例えば、IDが1番のウェブサイトから記事のリストを読み込みたいとします。
また、オプションのパラメータは指定しないとします。
この場合だと、以下のように記述します。
DataAPI.send("listEntries", 1, new DataAPIListener() {
@Override
public void onResponse(JSONObject resp) {
// 通信に成功したときの処理
}
@Override
public void onError(VolleyError error) {
// 通信に失敗したときの処理
}
});
