OpenSocial--使用OpenSocial开发iGoogle小工具:访问用户和个人资料

上面讲代码结构的时候讲到了一个获取好友列表的一个实例,下面就详细讲一下这个实例的代码详细流程:

首先需要创建一个DataRequest对象,由这个对象定义数据请求的对象,就是要请求什么数据,然后发送请求。

在发送请求的时候指定一个回调方法,数据请求完毕之后,通过DataResponse对象返回数据。

通过处理DataResponse里面的数据就可以把好友还有自己的个人信息都显示在页面上了。

<?xml version="1.0" encoding="UTF-8" ?>
<Module>
    <ModulePrefs title="List Friends Example">
        <Require feature="opensocial-0.7"/>
    </ModulePrefs>
    <Content type="html">

    <![CDATA[

    <script type="text/javascript">

        function getData() {
            var req = opensocial.newDataRequest();    //创建一个DataRequest对象

            //newFetchPersonRequest:创建项目以向服务器请求用户 ID 的个人资料
            req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), 'viewer');//数据存储在Person对象中
            //newFetchPersonRequest:创建项目以向服务器请求好友
            req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS), 'viewerFriends');//数据存储在Collection<Person>对象中
            //'viewer' or 'viewerFriends' 要将生成的响应数据映射至的键

            req.send(onLoadFriends);    //向服务器发送数据请求以获取数据响应
        };

        //使用回调函数处理数据
          //dataResponse是DataResponse类型的数据
          //dataResponse是回调函数的返回值
        function onLoadFriends(dataResponse) {
            //getData() 将返回成功请求的实际响应数据
               //当请求查看者或所有者时,会返回 opensocial.Person 对象
               //当请求一组好友时,会得到 opensocial.Person 对象的 opensocial.Collection

            var viewer = dataResponse.get('viewer').getData();
            var html = 'Friends of ' + viewer.getDisplayName();
            html += ':<br><ul>';
            var viewerFriends = dataResponse.get('viewerFriends').getData();

            //相当于C#的Foreach方法
            viewerFriends.each(function(person) {
                html += '<li>' + person.getDisplayName() + '</li>';
            });
            html += '</ul>';
            document.getElementById('message').innerHTML = html;
        };

        gadgets.util.registerOnLoadHandler(getData);

    </script>
    <div id="message"> </div>

    ]]>
    </Content>
</Module>

转载于:https://www.cnblogs.com/celery94/archive/2008/12/08/1350140.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值