OpenSocialTutorial-5
IDtail.com API
[편집] 활동기록 남기기
idtail.com에서는 "안테나"가 존재하여, 자신의 친구들이 어떤 일을 하는지를 알 수 있습니다. 이 기능은 어플리케이션의 운영에도 중요한 역할을 하는데, opensocial에서는 activity라는 개체를 이용하여 방문자가 자신의 활동을 남길 수가 있습니다. 자신의 활동기록은 친구들의 안테나에 공개 됩니다.
<Module>
<ModulePrefs title="My Friends List">
<Require feature="opensocial-0.7"/>
</ModulePrefs>
<Content type="html">
<![CDATA[
<div id="content"></div>
<script type="text/javascript" >
gadgets.util.registerOnLoadHandler( init );
var people = new Array();
var owner, viewer;
function init() {
var req = opensocial.newDataRequest();
req.add( req.newFetchPersonRequest('OWNER'), 'owner' );
req.add( req.newFetchPersonRequest('VIEWER'), 'viewer' );
req.send( onDataLoad );
}
function hello() {
title =
"<a href='" + viewer.getField(opensocial.Person.Field.PROFILE_URL) + "'>" +
viewer.getDisplayName() + "</a>님이 " +
"<a href='" + owner.getField(opensocial.Person.Field.PROFILE_URL) + "'>" +
owner.getDisplayName() + "</a>님을 방문했다고 알려드립니다.";
var activity = opensocial.newActivity(title);
opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH, hello_done);
}
function hello_done(dataResponse) {
if( dataResponse.hadError() ) {
alert( "오류가 발생하였습니다" );
return;
}
alert( "요청하였습니다" );
}
function onDataLoad(dataResponse) { /* dataResponse methods: hadError get */
var cont = document.getElementById('content');
if( dataResponse.hadError() ) {
cont.innerHTML = "Error in fetching data";
return;
}
owner = dataResponse.get( 'owner' ).getData();
viewer = dataResponse.get( 'viewer' ).getData();
var c;
c = '<h1>잘지내십니까?</h1>';
c += owner.getDisplayName() + "님을 방문했다고 활동기록을 남깁니다.";
c += "<input type='button' value='활동기록 남기기' onclick='hello()' />";
cont.innerHTML = c;
}
</script>
]]>
</Content>
</Module>
오늘의 한 마디 예제:
<Module>
<ModulePrefs title="Activity">
<Require feature="opensocial-0.7"/>
</ModulePrefs>
<Content type="html">
<![CDATA[
<div id="content"></div>
<script type="text/javascript" >
gadgets.util.registerOnLoadHandler( init );
var people = new Array();
var owner, viewer;
function init() {
var req = opensocial.newDataRequest();
req.add( req.newFetchPersonRequest('OWNER'), 'owner' );
req.add( req.newFetchPersonRequest('VIEWER'), 'viewer' );
req.send( onDataLoad );
}
function hello() {
title =
"<a href='" + viewer.getField(opensocial.Person.Field.PROFILE_URL) + "'>" +
viewer.getDisplayName() + "</a>: " + document.getElementById("motd").value;
var activity = opensocial.newActivity(title);
opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH, hello_done);
}
function hello_done(dataResponse) {
if( dataResponse.hadError() ) {
alert( "오류가 발생하였습니다" );
return;
}
alert( "요청하였습니다" );
}
function onDataLoad(dataResponse) { /* dataResponse methods: hadError get */
var cont = document.getElementById('content');
if( dataResponse.hadError() ) {
cont.innerHTML = "Error in fetching data";
return;
}
owner = dataResponse.get( 'owner' ).getData();
viewer = dataResponse.get( 'viewer' ).getData();
var c;
c = '<h1>오늘의 한 마디</h1>';
c += '<input type="text" id="motd" value="" style="width:500px" />';
c += '<input type="button" value="오늘의 내 상태" onclick="hello()" />';
cont.innerHTML = c;
}
</script>
]]>
</Content>
</Module>





