ドキュメント

アプリデータを保存、取得する

Aipoではユーザーが入力した情報や外部から取得した情報について、データベースやファイルに保存をしています。保存した情報は、一度ログアウトした後でも再び取得することができます。ソーシャルアプリでも同様に、ユーザーが入力した情報や外部から取得した情報を永続化するための機能が用意されています。この機能のことをアプリデータ(永続化データ)と呼びます。

なお、アプリデータは同じアプリケーションを利用している他のユーザーと共有されます。パスワードなどの機密データの保存として、アプリデータの利用は向いていませんのでご注意ください。

アプリデータの取得、更新処理は、OpenSocial で定められている AppData API を利用することになります。 OpenSocial 1.0 で規定されている仕様については下記をご覧ください。

http://opensocial-resources.googlecode.com/svn/spec/1.0/Social-Gadget.xml#osapi.appdata

アプリデータの保存

アプリケーションデータを取得、更新する JavaScript API を利用するためには、まず以下のようにガジェットXMLを記述して osapi フィーチャーを有効にする必要があります。

<Module ...>
  <ModulePrefs>
    <Require feature="osapi" />
     ...
  </ModulePrefs>
...
</Module>

アプリデータを保存するコードは以下のようになります。

osapi.appdata.update({ userId: '@viewer', data: { key1: "値1", key2: "値2" }  }).execute(function(response) {
    //
});
  • アプリデータは osapi.appdata.update() メソッドを利用して保存します。
  • data パラメータに、保存したいデータを key, value 形式で指定します。
  • キーは 32 byte まで、値は 1024 byte までとなります。

アプリデータ保存の対象は osapi.appdata.update() メソッドの userId パラメータで指定します。

userId 説明
@viewer 利用中のユーザー(Viewer)の領域に保存します。
@admin 全ユーザーの共通領域に保存します。

アプリデータの取得

アプリデータを取得するコードは以下のようになります。

osapi.appdata.get({ userId: ['org001:sample1', 'org001:sample2', 'org001:sample3'] ,fields: ['key1', 'key2','key3'] }).execute(function(response) {
    // ユーザーID、アプリデータの連想配列
    for (var userId in response) {
        var data = response[userId];
        // キー, 値の連想配列
        for (var key in data) {
            // 値
            // 例)値1
            var value = data[key];
        }
    }
});
  • アプリデータは osapi.appdata.get() メソッドを利用して取得します。
  • アプリデータは、すべての領域から取得可能です。
  • userId パラメータに取得したいユーザーを指定します。複数指定することもできます。
  • 共通領域のアプリデータを取得したい場合は、userId パラメータに @admin を指定します。
  • fields パラメータに取得したいアプリデータのキーを指定します。複数指定することもできます。

アプリデータの削除

アプリデータを削除するコードは以下のようになります。

osapi.appdata['delete']({ userId: '@viewer' , fields: ['key1', 'key2'] }).execute(function(response) {
    // ...
});
  • アプリデータは osapi.appdata.delete() メソッドを利用して削除します。
  • fields パラメータに削除したいアプリデータのキーを指定します。複数指定することもできます。

アプリデータ削除の対象は osapi.appdata.delete() メソッドの userId パラメータで指定します。

userId 説明
@viewer 利用中のユーザー(Viewer)の領域から削除します。
@admin 全ユーザーの共通領域から削除します。