var viewer; // 类型:opensocial.Person var viewerFriends; // 类型:opensocial.Collection var bookList = ['西游记', '三国演义', '水浒传', '红楼梦']; /* 可点击的书名 */ function bookHTML(book) { return "
  • " + "" + book + "
  • "; }; /* 显示书架里的书名 */ function showAvailableBooks() { var html = new Array(); var len = bookList.length; for (var i = 0; i < len; ++i) { html.push(bookHTML(bookList[i])); } document.getElementById('allBooks').innerHTML = html.join(''); }; /* 处理书名点击响应 */ function onReadBook(book) { /* 串行化新的数据 */ var books = []; books.push(book); json = gadgets.json.stringify(books); /* 发送更新请求 */ var req = opensocial.newDataRequest(); req.add(req.newUpdatePersonAppDataRequest('VIEWER', 'books', json)); req.send(function(dataResponse) { alert("我读了" + book); /* 更新后刷新所有数据 */ reloadAll(); }); }; /* 显示基本信息 */ function showBasic() { /* 显示 VIEWER 名字 */ document.getElementById('me').innerHTML = viewer.getDisplayName(); /* 显示 VIEWER 的朋友名字 */ var html = new Array(); viewerFriends.each(function(friend) { html.push(friend.getDisplayName() + ", "); }); document.getElementById('friends').innerHTML = html.join(''); }; /* 发送 Opensocial API 请求 */ function reloadAll() { var req = new opensocial.DataRequest(); req.add(req.newFetchPersonRequest('VIEWER'), 'v'); req.add(req.newFetchPeopleRequest('VIEWER_FRIENDS'), 'vf'); req.send(onReloadAll); }; /* 处理 Opensocial API 响应 */ function onReloadAll(dataResponse) { /* 获取数据 */ viewer = dataResponse.get('v').getData() || {}; viewerFriends = dataResponse.get('vf').getData() || {}; /* 显示数据 */ showBasic(); showAvailableBooks(); }; /* Gadget 执行入口 */ function init() { reloadAll(); }; gadgets.util.registerOnLoadHandler(init);
    我:

    我的朋友:

    书架:
      ]]>