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);
]]>