Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

mixiアプリとデータの永続化

mixiアプリで始めるOpenSocial入門(7)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/01/08 14:00

 本連載ではここまで、ソーシャルデータの取得とアクティビティの作成について説明してきました。今回は、OpenSocialアプリケーションに欠かせないもう一つの機能「データの永続化」を扱います。

目次

はじめに

 本連載ではここまで、ソーシャルデータの取得とアクティビティの作成について説明してきました。OpenSocialアプリケーションに欠かせないもう一つの機能が、今回扱うデータの永続化です。一般的なアプリケーションでユーザーが入力したデータなどをファイルやデータベースに保存するように、OpenSocialアプリケーション内で扱うデータについても、この永続化機能を使ってOpenSocialコンテナ上に保存することができます。OpenSocial JavaScript APIでは、このアプリケーションデータの永続化機能をPersistence APIと呼んでいます。

 Persistence APIは、ただアプリケーションの利用者のデータの保存、取得を行うだけでなく、他のユーザーのデータを取得することもできます。他のユーザーのデータの取得が可能になることから、Persistence APIは単なるデータ入出力機能ではなく、ソーシャルネットワークを生かした情報共有を行うための機能と言えます。

Persistence APIで扱うデータ

 Persistence APIで扱うことのできるデータは、一般にKey-Value形式と呼ばれる、名前と文字列値のセットです。以下の図のように、アプリケーションごとにデータ保存用の領域がOpenSocialコンテナ上に確保され、そこにユーザーごとにKey-Value形式のデータを複数保存することができます。

Persistence APIで保存されるデータの構造
Persistence APIで保存されるデータの構造

 図中にも示したとおり、値として文字列を保存できますので、複雑な構造を持つデータを保存する際にはJSON(JavaScript Object Notation)形式での保存も可能です。

 Persistence APIでデータを保存・削除することができるのは、現在そのアプリケーションを動かしているユーザー(VIEWER)についてのデータのみです。

 取得に関しては、そのアプリケーションをインストールしているユーザーのデータであれば、誰のデータでも取得することができます。従って、マイミクに入っているかどうか、といった条件はなく、同じアプリケーションをインストールしているすべてのユーザーの間でデータは読み取り可能です。

 mixiアプリにおいては、各項目の値の最大サイズは64KBまで、1ユーザーが1アプリに保存可能な最大容量は10MBに制限されています。

Persistence APIの使用方法

 前述の通り、Persistence APIはアプリケーションのデータをネットワークを介してOpenSocialコンテナ上に保存します。Persistence APIを使うためには、第4回での登場以来おなじみの、DataRequestオブジェクトを使用します。

 DataRequestオブジェクトの使い方はこれまでと同様で、以下の手順です。

  1. DataRequestオブジェクトの作成
  2. DataRequestオブジェクトのメソッドで、リクエストを作成
  3. 1つないしは複数のリクエストをDataRequestオブジェクトに格納してOpenSocialコンテナに送信する
  4. OpenSocialコンテナからのレスポンスを処理する

 Persistence APIには次のとおり、アプリケーションデータの格納・取得・削除を行うための3つのリクエストが存在します。

Persistence APIで扱うDataRequestオブジェクトの主なメソッド
メソッド名 概要
newUpdatePersonAppDataRequest データを保存するリクエストを作成
newFetchPersonAppDataRequest データを取得するリクエストを作成
newRemovePersonAppDataRequest データを削除するリクエストを作成

 それでは、各リクエストの使い方について考えましょう。

アプリケーションデータの保存

 個人のアプリケーションデータを保存するリクエストを作成するnewUpdatePersonAppDataRequestメソッドは、以下の3つの値を引数として指定します。

  1. 所有者
  2. 項目名

1. 所有者

 第4回で解説した、個人を特定するためのPersonIDを指定します。ただし、前述の通りアプリケーションの利用者(VIEWER)の値のみを設定することができますので、この引数はVIEWERを表すopensocial.IdSpec.PersonId.VIEWERで固定です。

2. 項目名

 データの項目名を文字列で指定します。

3. 値

 データの値を文字列で指定します。前述の通り、JSON形式での値も設定することができます。

 以下にリクエストの作成例を示します。

newUpdatePersonAppDataRequestメソッドの呼び出し例
var updateRequest1 = req.newUpdatePersonAppDataRequest(opensocial.IdSpec.PersonId.VIEWER, "message1", "Hello !");
 //VIEWERについて、"message1"という項目名で"Hello !"という値を保存する
var updateRequest2 = req.newUpdatePersonAppDataRequest(opensocial.IdSpec.PersonId.VIEWER, 'app-setting', '{"id":"john", "style":"fancy"}');
 //VIEWERについて、app-settingという項目名でJSON形式のデータを保存する

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

  • WINGSプロジェクト 土井 毅(ドイ ツヨシ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

バックナンバー

連載:mixiアプリで始めるOpenSocial入門

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5