Getting data from Owner, Viewer, Hyver or Friends

To know who the viewer and the owner is. To get the owner friends or specific Hyvers (They are sorted and can be set with a amount of Hyvers you want each newFetchPeopleRequest.

<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="List data" description="" author="" author_email="" thumbnail="" screenshot="" height="380">
   <Require feature="opensocial-0.7"/>
   <Require feature="dynamic-height"/>
 </ModulePrefs>
 <Content type="html">
 
 <![CDATA[
<style>
body {
	font-size:12px;
	font-family:Arial, Helvetica, sans-serif;
}
</style>
<script type="text/javascript">
 
// this is a gadget example for newFetchPersonRequest and newFetchPeopleRequest with unique id's or with owner friends
function loadData() {
    var req = opensocial.newDataRequest();
	req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');
	req.add(req.newFetchPersonRequest('OWNER'), 'owner');
 
	var params = {};
	params[opensocial.DataRequest.PeopleRequestFields.FIRST] = 0;
	params[opensocial.DataRequest.PeopleRequestFields.MAX] = 10;
	params[opensocial.DataRequest.PeopleRequestFields.SORT_ORDER] = opensocial.DataRequest.SortOrder.NAME;
 
	// disabled example on how to filter your result on people who have the app installed
	//params[opensocial.DataRequest.PeopleRequestFields.FILTER] = opensocial.DataRequest.FilterType.HAS_APP;
 
	// disabled example with multiple userid's        
	//var hyverIds = ["XXXXXXXXX","YYYYYYYYYYY"];
	//req.add(req.newFetchPeopleRequest(hyverIds, params), 'hyvers');
 
	// example owner_friends
	req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.OWNER_FRIENDS, params), 'ownerfriends');
 
	// example viewer_friends
	req.add(req.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS, params), 'viewerfriends');
 
	req.send(onLoadData);
}
 
function onLoadData(data) {
    var viewer = data.get('viewer').getData();
    var owner = data.get('owner').getData();
    var ownerfriends = data.get('ownerfriends').getData();
	var viewerfriends = data.get('viewerfriends').getData();
 
    var viewerId = viewer.getField(opensocial.Person.Field.ID);
    var ownerId = owner.getField(opensocial.Person.Field.ID);
	var sViewerThumbnail = viewer.getField(Hyves.Person.Field.THUMBNAIL_URL_SQUARE_LARGE);
	var sOwnerThumbnail = owner.getField(Hyves.Person.Field.THUMBNAIL_URL_SQUARE_LARGE);
 
    html = new Array();
    html.push('<br>Viewer/Owner:<br><hr><br>');
    html.push('<table><tr><td><strong>Owner:</strong></td><td><img src="' + sOwnerThumbnail + '" border="0"></td><td><strong>Userid:</strong></td><td>' + ownerId + '</td></tr>');
    html.push('<tr><td><strong>Viewer:</strong></td><td><img src="' + sViewerThumbnail + '" border="0"></td><td><strong>Userid:</strong></td><td>' + viewerId + '</td></tr>');
    html.push('</table><br>');
	html.push('<h4>First 10 OWNER_FRIENDS</h4><hr><br>');
 
    ownerfriends.each(function(person) {
        var sId = person.getId();
        var sGivenName = person.getField(opensocial.Person.Field.NAME).getField(opensocial.Name.Field.GIVEN_NAME);
        var sFamilyName = person.getField(opensocial.Person.Field.NAME).getField(opensocial.Name.Field.FAMILY_NAME);
        var sUnstructuredName = person.getField(opensocial.Person.Field.NAME).getField(opensocial.Name.Field.UNSTRUCTURED);
        var gender = person.getField(opensocial.Person.Field.GENDER);
        var sGender = gender ? gender.getDisplayValue() : 'unknown';
        var sDisplayname = person.getDisplayName();
        var sNickname = person.getField(opensocial.Person.Field.NICKNAME);
        var firstAddress = person.getField(opensocial.Person.Field.ADDRESSES)[0];
        var sAdresType = firstAddress.getField(opensocial.Address.Field.TYPE);
        var sAdresUnstructured = firstAddress.getField(opensocial.Address.Field.UNSTRUCTURED_ADDRESS);
        var sAdresLocality = firstAddress.getField(opensocial.Address.Field.LOCALITY);
        var sAdresCountry = firstAddress.getField(opensocial.Address.Field.COUNTRY);
        var sDateOfBirth = person.getField(opensocial.Person.Field.DATE_OF_BIRTH);
        var sProfileUrl = person.getField(opensocial.Person.Field.PROFILE_URL);
        var sThumbnail = person.getField(Hyves.Person.Field.THUMBNAIL_URL_SQUARE_LARGE);
 
        html.push('<img src="' + sThumbnail + '" border="0">');
        html.push('<br><br>');
        html.push('id: ' + sId);
        html.push('<br>');
        html.push('givenName: ' + sGivenName);
        html.push('<br>');
        html.push('familyName: ' + sFamilyName);
        html.push('<br>');
        html.push('displayname: ' + sDisplayname);
        html.push('<br>');
        html.push('nickname: ' + sNickname);
        html.push('<br>');
        html.push('unstructured name: ' + sUnstructuredName);
        html.push('<br>');
        html.push('gender:' + sGender);
        html.push('<br>');
        html.push('date of birth: ' + sDateOfBirth);
        html.push('<br>');
        html.push('profile url: ' + sProfileUrl);
        html.push('<br><br>');
        html.push('address: ');
        html.push('<br>');
        html.push('type: ' + sAdresType);
        html.push('<br>');
        html.push('unstructured: ' + sAdresUnstructured);
        html.push('<br>');
        html.push('locality: ' + sAdresLocality);
        html.push('<br>');
        html.push('country: ' + sAdresCountry);
        html.push('<br><hr><br>');
    });
 
    html.push('<h4>First 10 VIEWER_FRIENDS</h4><hr><br>');
 
    viewerfriends.each(function(person) {
            var sThumbnail = person.getField(Hyves.Person.Field.THUMBNAIL_URL_SQUARE_LARGE);
            html.push('<img src="' + sThumbnail + '" border="0">');
    });
 
    html.push('<br><br>');
    document.getElementById('message').innerHTML = html.join('');
    gadgets.window.adjustHeight();
}
function viewerinfo() {
    document.getElementById('viewernotvisible').style.display = "none";
    function getViewer(responseItem) {
		if(responseItem.hadError()) {
			var sErrorcode = responseItem.getErrorCode();
			if(sErrorcode == 'forbidden') {
				document.getElementById('message').innerHTML = "You are not logged in, please log in first.";
			} else if(sErrorcode == 'unauthorized') {
				document.getElementById('message').innerHTML = "This application can't see your information because you will have to give permission to share your information. Please click the button below.";
				document.getElementById('viewernotvisible').style.display = "block";
			}
		}	
		if (opensocial.hasPermission(opensocial.Permission.VIEWER)) {
			loadData();
        }
    }
    opensocial.requestPermission([opensocial.Permission.VIEWER], 'This reason sentence is not used at the moment', getViewer);
}
function init() {
    if (opensocial.hasPermission(opensocial.Permission.VIEWER)) {
	    loadData();
    } else {
		document.getElementById('viewernotvisible').style.display = "block";
    }
}
 
gadgets.util.registerOnLoadHandler(init);
 
  </script>
  <div id="viewernotvisible" style="display:none;"><input type="button" onclick="viewerinfo();" value="Ask for viewer permission"></div>
  <div id="message"></div>
  ]]>
  </Content>
</Module>

Example install (Make sure you're not in OpenSocial Sandbox mode)

Example file Getting data from Owner, Viewer, Hyver or Friends