Mixi アプリ データの永続化
2020年2月15日 (土) 07:34時点におけるPiroto (トーク | 投稿記録)による版 (ページの作成:「==mixi アプリ データの永続化== [mixi アプリ] ===データ永続化のサンプル=== File:0797_mixi_app_parsist_dat.jpg *登録ボタンで閲覧者…」)
mixi アプリ データの永続化
[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>
Memo
- <textarea id="memo" rows="3" cols="20">
- </textarea>
- <input type="button" id="regist" value="登録" onclick="javascript:registRequest();"/>
- <input type="button" id="remove" value="削除" onclick="javascript:removeRequest();"/>
- ]]>
- </Content>
- </Module>
© 2006 矢木浩人