ITPub博客

首页 > Linux操作系统 > Linux操作系统 > OpenSocial:访问用户和个人资料

OpenSocial:访问用户和个人资料

原创 Linux操作系统 作者:Google-fans 时间:2008-08-22 11:56:41 0 删除 编辑

访问用户和个人资料

让我们以一个列出好友名称的简单实例来开始入门。但是,先了解由 OpenSocial API 定义的角色十分重要:

  • 查看者:登录浏览器的用户。作为查看者,您可以查看自己的页面,也可以查看其他用户的个人资料。
  • 所有者:拥有个人资料或相关应用程序的用户。
  • 好友:被所有者或查看者在容器中加为好友的用户。

本节中讨论的“列出好友”实例可以获取查看者和查看者的好友,并显示查看者好友的列表。介绍了如何获取并管理 OpenSocial 应用程序中的数据。基本步骤如下:

  1. 检索数据。
    • 通过调用 opensocial.newDataRequest() 创建 DataRequest。
    • 为要检索的每种数据类型都调用一次 DataRequest.add(request)。
    • 在将所有单个请求都添加到您的 DataRequest 对象后,调用 DataRequest.send(callback)。
  2. 执行回调函数以处理检索到的数据。
    • 处理服务器请求后,执行回调函数。该函数将采用一个具有请求结果的 DataResponse 参数。在“列出好友”中,DataResponse 包括查看者和查看者的好友。回调函数将处理 DataResponse 中的数据。

下面将详细讨论这些步骤。

检索数据

要获取有关查看者和查看者好友的信息,请为要检索的每种数据类型创建新的 DataRequest 对象并向其添加请求。

 /**
  * Request for friend information when the page loads.
  */
  function getData() {
    var req = opensocial.newDataRequest();
    req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), 'viewer');
    req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS), 'viewerFriends');
    req.send(onLoadFriends);
  };

newFetch*Request() 调用中的最后一个参数是用于检索响应中的数据的字符串关键字。

使用回调函数处理数据

假设您已在上一节做了实例练习。现在,您想要进行有关返回数据的练习,其类型为 opensocial.DataResponse。以下 onLoadFriends() 回调函数将解析用作参数的 DataResponse,并显示查看者和查看者好友的姓名:

 /**
  * Parses the response to the friend information request and generates
  * html to list the friends by their display name.
  *
  * @param {Object} dataResponse Friend information that was requested.
  */
  function onLoadFriends(dataResponse) {
    var viewer = dataResponse.get('viewer').getData();
    var html = 'Friends of ' + viewer.getDisplayName(); 
    html += ':
    '; var viewerFriends = dataResponse.get('viewerFriends').getData(); viewerFriends.each(function(person) { html += '
  • ' + person.getDisplayName() + '
  • '; }); html += '
'; document.getElementById('message').innerHTML = html; };

使用传送到 newFetch*Request() 的字符串关键字调用 DataResponse.get(key) 将返回包括请求结果的 ResponseItem。

调用 dataResponse.get(key).getData() 将返回成功请求的实际响应数据。以下是与常规请求相关联的响应数据类型:

  • 当请求查看者或所有者时,会返回 opensocial.Person 对象。
  • 当请求一组好友时,会得到 opensocial.Person 对象的 opensocial.Collection。

如果给定请求不成功,则 DataResponse.get(key).hasError() 返回 true。

列出好友的完整代码

本节将列出以上讨论的“列出好友”应用程序的完整代码。

在应用程序中,通常您想做的第一件事是请求您应用程序所需的数据。请注意,代码包括该行:

gadgets.util.registerOnLoadHandler(getData);

这会将 getData() 注册为应用程序的装载处理程序,这意味着应用程序进行的第一件事是获取查看者和查看者好友数据(通过 getData())。

以下是完整实例。它会将其输出写入到 ID 为 "message" 的

中。



 
   
 
 

 

 /**
  * Request for friend information.
  */
  function getData() {    
    var req = opensocial.newDataRequest();
    req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), 'viewer');
    req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS), 'viewerFriends');
    req.send(onLoadFriends);
  };

 /**
  * Parses the response to the friend information request and generates
  * html to list the friends along with their display name.
  *
  * @param {Object} dataResponse Friend information that was requested.
  */
  function onLoadFriends(dataResponse) {
    var viewer = dataResponse.get('viewer').getData();
    var html = 'Friends of ' + viewer.getDisplayName(); 
    html += ':
    '; var viewerFriends = dataResponse.get('viewerFriends').getData(); viewerFriends.each(function(person) { html += '
  • ' + person.getDisplayName() + '
  • '; }); html += '
'; document.getElementById('message').innerHTML = html; }; gadgets.util.registerOnLoadHandler(getData);
]]>

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14734354/viewspace-432966/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-07-08

  • 博文量
    140
  • 访问量
    230936