Hi there,
I'm developing an application and experience such a problem:
"Permission denied to all viewer resources" error when trying to get viewer data. The error occurs when the app is run by another developer (from app developers list). When I run the app myself or test it with MySpace tools it works fine.
Can anyone help with it? Below there's the source code and trace.
<div id='loading'><img src='http://www.viphaklay.com/jquery/spinner.gif'/></div><div id='message' style='margin: 4px'></div>
<div id='heading'></div>
<hr size="1px" />
<table border="1" cellspacing="0" bordercolor="black">
<tr>
<td>
<div id='main'></div>
</td>
</tr>
</table>
<script type="text/javascript">
var os;
var dataReqObj;
var html = '';
var heading = '';
function init() {
MYOS_TRACE = true;
trace('Trace Info:');
trace('Init');
os = opensocial.Container.get();
dataReqObj = os.newDataRequest();
var param = {};
param[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS]=[opensocial.Person.Field.ADDRESSES, opensocial.Person.Field.CURRENT_LOCATION, opensocial.Person.Field.ID, opensocial.Person.Field.NAME, opensocial.Person.Field.NICKNAME, opensocial.Person.Field.PROFILE_URL, opensocial.Person.Field.THUMBNAIL_URL, MyOpenSpace.Person.Field.REGION, MyOpenSpace.Person.Field.CITY, MyOpenSpace.Person.Field.COUNTRY, MyOpenSpace.Person.Field.HOMETOWN, MyOpenSpace.Person.Field.POSTALCODE];
var viewerReq = os.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER, param);
dataReqObj.add(viewerReq);
var ownerReq = os.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER);
dataReqObj.add(ownerReq);
trace('Sending request to MySpace');
dataReqObj.send(dataResponse);
trace('The request has been sent successfully');
}
function dataResponse(data) {
trace('We got to request callback function');
try {
if (data.hadError()) {
var errorData = data.get(opensocial.DataRequest.PersonId.VIEWER);
trace('there was an error requesting data from MySpace:');
trace(errorData.getErrorCode() + '\n' + errorData.getErrorMessage());
return;
}
trace('Reading Viewer info');
var viewer = data.get(opensocial.DataRequest.PersonId.VIEWER).getData();
var viewerId = viewer.getField(opensocial.Person.Field.ID);
var viewerCountry = viewer.getField(MyOpenSpace.Person.Field.COUNTRY);
var viewerRegion = viewer.getField(MyOpenSpace.Person.Field.REGION);
var viewerCity = viewer.getField(MyOpenSpace.Person.Field.CITY);
var viewerHometown = viewer.getField(MyOpenSpace.Person.Field.HOMETOWN);
var viewerPostalCode = viewer.getField(MyOpenSpace.Person.Field.POSTALCODE);
trace('Displaying Viewer header');
heading = 'Hello, ' + viewer.getDisplayName() + ' (ID: ' + viewerId + '. ' + viewerCountry + ', '+ viewerRegion + ', ' + viewerCity + ', ' + viewerPostalCode + ', Hometown: ' + viewerHometown + ')';
document.getElementById('heading').innerHTML = heading;
trace('Viewer info displayed');
var viewerThumb = viewer.getField(opensocial.Person.Field.THUMBNAIL_URL);
var viewerProfile = viewer.getField(opensocial.Person.Field.PROFILE_URL);
html = '<a href="' + viewerProfile + '"><img src="' + viewerThumb + '" border="0"></a>';
trace('Reading Owner info');
var owner = data.get(opensocial.DataRequest.PersonId.OWNER).getData();
var ownerId = owner.getField(opensocial.Person.Field.ID);
var ownerThumb = owner.getField(opensocial.Person.Field.THUMBNAIL_URL);
var ownerProfile = owner.getField(opensocial.Person.Field.PROFILE_URL);
var ownerDisplayName = owner.getDisplayName();
trace('Displaying Viewer and Owner profile images');
html = html + '<br>You are at: ' + ownerId + ' - ' + ownerDisplayName + '<br><a href="' + ownerProfile + '"><img src="' + ownerThumb + '" border="0"></a>';
}
catch (er)
{
trace(er.description);
}
document.getElementById('main').innerHTML = html;
trace('Done');
document.getElementById('loading').style.display = 'none';
}
function trace(msg) {
document.getElementById('message').innerHTML += msg + '<br>';
}
init();
</script>
Trace with error (run by an app developer):
Trace Info:
Init
Sending request to MySpace
The request has been sent successfully
We got to request callback function
there was an error requesting data from MySpace:
unauthorized Permission denied to all viewer resources.
Trace without error (run by me):
Trace Info:
Init
Sending request to MySpace
The request has been sent successfully
We got to request callback function
Reading Viewer info
Displaying Viewer header
Viewer info displayed
Reading Owner info
Displaying Viewer and Owner profile images
Done