原文地址: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>
好了,这个简单的改变我们也完成了。据说这个过滤对应用来说还是蛮有意义的。