OpenSocialTutorial-10
IDtail.com API
[편집] 외부 사이트 컨텐츠 가져오기
외부 사이트의 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¶m2=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>





