SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

mixiアプリで始めるOpenSocial入門

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

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

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

 本連載ではここまで、ソーシャルデータの取得とアクティビティの作成について説明してきました。今回は、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形式のデータを保存する

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
アプリケーションデータの取得

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
mixiアプリで始めるOpenSocial入門連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4660 2010/01/08 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング