「Mixi アプリ データの永続化」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==mixi アプリ データの永続化== [mixi アプリ] ===データ永続化のサンプル=== File:0797_mixi_app_parsist_dat.jpg *登録ボタンで閲覧者…」) |
|||
1行目: | 1行目: | ||
==mixi アプリ データの永続化== | ==mixi アプリ データの永続化== | ||
− | [mixi アプリ] | + | [[mixi アプリ]] |
===データ永続化のサンプル=== | ===データ永続化のサンプル=== | ||
[[File:0797_mixi_app_parsist_dat.jpg]] | [[File:0797_mixi_app_parsist_dat.jpg]] | ||
12行目: | 12行目: | ||
|- | |- | ||
|[http://code.google.com/intl/ja/apis/opensocial/docs/0.8/reference/#opensocial.DataRequest.newFetchPersonAppDataRequest newFetchPersonAppDataRequest] | |[http://code.google.com/intl/ja/apis/opensocial/docs/0.8/reference/#opensocial.DataRequest.newFetchPersonAppDataRequest newFetchPersonAppDataRequest] | ||
− | |指定した個人のアプリケーション データを要求するアイテムを作成。Map | + | |指定した個人のアプリケーション データを要求するアイテムを作成。Map< PersonId, Map<String,Object>> を返します。返されるデータの値はすべて、JSON |
|- | |- | ||
|[http://code.google.com/intl/ja/apis/opensocial/docs/0.8/reference/#opensocial.DataRequest.newUpdatePersonAppDataRequest newUpdatePersonAppDataRequest] | |[http://code.google.com/intl/ja/apis/opensocial/docs/0.8/reference/#opensocial.DataRequest.newUpdatePersonAppDataRequest newUpdatePersonAppDataRequest] | ||
24行目: | 24行目: | ||
|- | |- | ||
|} | |} | ||
− | + | <?xml version="1.0" encoding="UTF-8" ?> | |
− | + | <Module> | |
− | + | <ModulePrefs title="parsistance date sample"> | |
− | + | <Require feature="opensocial-0.8"/> | |
− | + | </ModulePrefs> | |
− | + | <Content type="html"> | |
− | + | <![CDATA[ | |
− | + | <script type="text/javascript"> | |
var key1 = "key_memo"; | var key1 = "key_memo"; | ||
// 永続データ読み込み要求 | // 永続データ読み込み要求 | ||
80行目: | 80行目: | ||
} | } | ||
gadgets.util.registerOnLoadHandler(loadRequest); | gadgets.util.registerOnLoadHandler(loadRequest); | ||
− | + | </script> | |
− | + | <p style="text-weight:bold;">Memo</p> | |
− | + | <textarea id="memo" rows="3" cols="20"> | |
− | + | </textarea> | |
− | + | <div id="message"/> | |
− | + | <input type="button" id="regist" value="登録" onclick="javascript:registRequest();"/> | |
− | + | <input type="button" id="remove" value="削除" onclick="javascript:removeRequest();"/> | |
− | ]] | + | ]]> |
− | + | </Content> | |
− | + | </Module> |
2020年2月15日 (土) 08:04時点における版
mixi アプリ データの永続化
データ永続化のサンプル
- 登録ボタンで閲覧者に紐つけしたデータを永続化
- 削除ボタンで永続データをクリア
ソース
重要API
API | 概要 |
---|---|
newFetchPersonAppDataRequest | 指定した個人のアプリケーション データを要求するアイテムを作成。Map< PersonId, Map<String,Object>> を返します。返されるデータの値はすべて、JSON |
newUpdatePersonAppDataRequest | 指定した個人のアプリケーション フィールドを更新するように要求するアイテムを作成。処理時にデータは返さない |
newRemovePersonAppDataRequest | 指定した個人のデータストアから指定したキーを削除。処理時にデータは返さない |
gadgets.util.unescapeString | escapeString を元に戻す |
<?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="parsistance date sample"> <Require feature="opensocial-0.8"/> </ModulePrefs> <Content type="html"> <![CDATA[ <script type="text/javascript"> var key1 = "key_memo"; // 永続データ読み込み要求 function loadRequest() { var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest("VIEWER"), "viewer"); var fields = [key1]; req.add(req.newFetchPersonAppDataRequest("VIEWER", fields), "viewer_data"); req.send(loadResponse); } // 永続データ読み込み応答 function loadResponse(data) { var viewer = data.get("viewer").getData(); var viewer_data = data.get("viewer_data"); if (viewer_data.hadError()) { document.getElementById("message").innerHTML = data.getErrorMessage(); return; } var dataAry = viewer_data.getData()[viewer.getId()]; var memo = (dataAry==null)?"":dataAry[key1]; var txtMemo = document.getElementById("memo"); txtMemo.value = gadgets.util.unescapeString(memo); txtMemo.disabled = false; } // 永続データ保存要求 function registRequest() { var req = opensocial.newDataRequest(); var txtMemo = document.getElementById("memo"); txtMemo.disabled = true; req.add(req.newUpdatePersonAppDataRequest("VIEWER", key1, txtMemo.value)); req.send(registResponse); } // 永続データ保存応答 function registResponse(data) { if (data.hadError()) { document.getElementById("message").innerHTML = data.getErrorMessage(); return; } loadRequest(); } // 永続データ削除要求 function removeRequest() { var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest("VIEWER"), "viewer"); var fields = [key1]; req.add(req.newRemovePersonAppDataRequest("VIEWER", fields), "viewer_data"); req.send(loadResponse); } gadgets.util.registerOnLoadHandler(loadRequest); </script> <p style="text-weight:bold;">Memo</p> <textarea id="memo" rows="3" cols="20"> </textarea> <div id="message"/> <input type="button" id="regist" value="登録" onclick="javascript:registRequest();"/> <input type="button" id="remove" value="削除" onclick="javascript:removeRequest();"/> ]]> </Content> </Module>
© 2006 矢木浩人