在51.com上如何编写HASAPP过滤--通用其他OS平台

本文介绍如何使用OPENSOCIALJS应用接口来获取用户的全部好友及通过hasapp属性过滤后的好友列表,包括具体实现代码示例。

原文地址:http://blog.xiaonei.com/GetEntry.do?id=380774039&owner=253723720

 

首先到51去申请一个OPENSOCIAL JS应用,这个流程这里就不提了,大家已经很熟悉了。
然后写我们的FETCH PEOPLE请求。

 

这里面有一个实例,我们可以去看一下:http://apps.51.com/os_test。

这里是他的xml地址:http://www.unickway.org.cn/opensocial/xml/xml/test/test_xml/ostest.xml

下面是取得好友【全部好友】的代码:
<code>

var opts = {};
    opts[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] = 
            [opensocial.Person.Field.ID,
             opensocial.Person.Field.NAME,
             opensocial.Person.Field.THUMBNAIL_URL,
             opensocial.Person.Field.STATUS];
    opts[opensocial.DataRequest.PeopleRequestFields.FIRST] = 0;
    opts[opensocial.DataRequest.PeopleRequestFields.MAX] = 20;
    req = opensocial.newDataRequest();
    var spec_of = opensocial.newIdSpec({userId : "OWNER", groupId : "FRIENDS"}); //opensocial 0.8的样子 
      req.add(req.newFetchPeopleRequest(spec_of, opts), "OWNER_FRIENDS");
    req.send(function(data) {
      var obj = data.get("OWNER_FRIENDS").getData(); //这里是我们获得的好友信息 
      var str = ''; 
      obj.each(function(f) {str += f.getId()+",";});
      response(str);
    });

</code>

下面是取得好友【通过hasapp属性过滤后的好友】的代码:

<code>
var opts = {};
    opts[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] = 
            [opensocial.Person.Field.ID,
             opensocial.Person.Field.NAME,
             opensocial.Person.Field.THUMBNAIL_URL,
             opensocial.Person.Field.STATUS];
    opts[opensocial.DataRequest.PeopleRequestFields.FIRST] = 0;
    opts[opensocial.DataRequest.PeopleRequestFields.MAX] = 20;
    opts[opensocial.DataRequest.PeopleRequestFields.FILTER] = opensocial.DataRequest.FilterType.HAS_APP; //这里是唯一不同,写入了请求的过滤信息 
    req = opensocial.newDataRequest();
    var spec_of = opensocial.newIdSpec({userId : "OWNER", groupId : "FRIENDS"});
      req.add(req.newFetchPeopleRequest(spec_of, opts), "OWNER_FRIENDS");
    req.send(function(data) {
      var obj = data.get("OWNER_FRIENDS").getData();
      var str = ''; 
      obj.each(function(f) {str += f.getId()+",";});
      response(str);
    });

</code> 

好了,这个简单的改变我们也完成了。据说这个过滤对应用来说还是蛮有意义的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值