OpenSocialTutorial-10

IDtail.com API

Jump to: navigation, 찾기

[편집] 외부 사이트 컨텐츠 가져오기

외부 사이트의 API의 응답 결과나 HTML을 가져오기 위해서 다음과 같이 가젯 코드를 작성하시면 됩니다.

gadgets.io.makeRequest(url, callback, params);

여기서 url은 호출할 api나 사이트의 주소이며, callback은 불러온 뒤에 호출 될 함수명이고 params는 호출 할 시의 option 값입니다.

*  현재 IDtail.com에서는 구글의 가젯 api인 _IG_fetch 형태의 함수를 legacy code로서 지원하고 있지만, 
   오픈소셜용으로 생각하고 만드시는 가젯에서는 권장하지 않습니다. 
    왜냐하면 _IG_형태의 legacy코드가 다른 컨테이너에서는 지원하지 않을 수 있기 때문입니다.  

현재 IDtail.com에서 makeRequest의 지원되는 RequestParameters는 다음과 같습니다.

gadgets.io.RequestParameters = {
   METHOD : 'METHOD',
   CONTENT_TYPE : "CONTENT_TYPE",
   POST_DATA : "POST_DATA", 
   HEADERS : "HEADERS",
   AUTHORIZATION : 'AUTHORIZATION'
};
* METHOD는 외부 컨테츠를 호출할 시의 Http Method 입니다. 지원 되는 METHOD는 밑에 박스를 참고하세요.
* CONTENT_TYPE은 외부 컨테츠에 대한 데이타 타입입니다.지원 되는 CONTENT_TYPE은 밑에 박스를 참고하세요.
* POST_DATA는 외부 컨텐츠를 호출할 시의 post data로서 RequestParameters의 Http Method가 POST일 때만 허용됩니다.
* HEADERS는 외부 컨텐츠를 호출할 시에 넘겨줄 Http header값 입니다. 

1. 지원 되는 RequestParameters의 METHOD

gadgets.io.MethodType = {
  GET : 'GET',
  POST : 'POST',
  PUT : 'PUT',
  DELETE : 'DELETE',
  HEAD : 'HEAD'
};

1. 지원 되는 RequestParameters의 ContentType

gadgets.io.ContentType= {
    TEXT : 'TEXT',
    DOM : 'DOM',
    JSON : 'JSON',
    FEED : 'FEED
};

[편집] 예제

<Module>
	<ModulePrefs title="makeRequest Sample">
 	</ModulePrefs>
 	<Content type="html">
	<![CDATA[
   		<div id="content"></div>
		<script>
			var url="http://api.idtail.com/get_user_info/idtail.json";
			var params = {};
			params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
			params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
			params[gadgets.io.RequestParameters.HEADERS] = { "X-test" : "test_value"};
			params[gadgets.io.RequestParameters.POST_DATA] = "show=basic&param2=param2_value" ;
			params[gadgets.io.RequestParameters.AUTHORIZATION] =gadgets.io.AuthorizationType.AUTHENTICATED;

			gadgets.io.makeRequest(url, response, params);
					
			_IG_FetchContent('http://api.idtail.com/get_user_info/idtail', response);
			_IG_FetchXmlContent('http://api.idtail.com/get_user_info/idtail', response);
			
			function response(data){
				var html = document.getElementById('content').innerHTML;
				html += "<br />data type => " + typeof data + "<br />";
				html += data;
				document.getElementById('content').innerHTML = html;
				gadget.window.adjustHeight();
			}
		</script>
   	]]>
  	</Content>
</Module>

이전 페이지 | 다음 페이지