OpenSocialTutorial-5

IDtail.com API

Jump to: navigation, 찾기

[편집] 활동기록 남기기

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>

이전 페이지 | 다음 페이지