앱스토어 가이드

로그인

하위메뉴

외부 컨텐츠 가져오기

앱스는 많은 웹서비스들로부터 제공되는 컨텐츠들을 가져와 매쉬업을 통해 더 새롭고 다양한 경험을 사용자에게 제공할 수 있습니다.

외부 서버와의 통신은 Gadget Core Javascript API에 정의된 gadget.io.makeRequest() 함수를 통해 구현할 수 있으며, TEXT, XML, FEED, JSON 형식 등의 다양한 데이터를 처리합니다.

  • String url :
    컨텐츠가 있는 URL
  • PFunction callback :
    URL에서 데이터를 가져온 뒤, 그 데이터로 호출할 함수
  • opt_params :
    요청에 필요한 추가 매개변수로서 다음 내용을 지정할 수 있습니다.
    • - 요청의 콘텐츠 유형 (TEXT, XML, FEED 및 JSON)
    • - 요청의 메서드 유형 (POST 또는 GET)
    • - 요청에 포함할 모든 헤더
    • - 인증 유형 (NONE, SIGNED 및 OAUTH)

gadget.io.makeRequest() 에 대한 자세한 정보는 아래 링크를 참고하세요.

외부 서버의 JSON data 가져오기

function makeJSONRequest() {
  var params = {};
  params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
  // This URL returns a JSON-encoded string that represents a JavaScript object
  var url = "http://test.com/json-data.txt";
  gadgets.io.makeRequest(url, response, params);
};

function response(obj) {
  var jsondata = obj.data;
  var html = "";

for (var key in jsondata) {
	var value = jsondata[key];
	html += key + ": ";

	if (value instanceof Array)
	{
	  html += "<br /><ul>";
	  for (var i = 0; i < value.length ; i++)
	  {
		html += "<li>"+ jsondata.Hobbies[i] + "</li>";
	  }
	  html+= "</ul>";
	} else {
	  html += value + "<br />";
	}
  }
  document.getElementById('content_div').innerHTML = html;
 };

json_data.txt 의 컨텐츠

{“Name” : "Rowan", "Breed" : "Labrador Retriever", "Hobbies" : ["fetching", "swimming", "tugging", "eating"]}

페이지 위로

인증이 필요한 경우

외부 서버와 통신을 할 경우, 외부서버는 들어온 요청에 대해 인증을 필요로 하는 경우가 있습니다. 아래 두 가지에 대해 확인하며, 이로써 잘못된 요청을 거절할 수 있습니다.

  • - SocialApps 플랫폼에서 보낸 요청이다.
  • - 요청 내용이 변경되지 않았다.

이를 위해, makeRequest()는 세가지 인증 유형을 지원합니다.

  • - gadgets.io.AuthorizationType.NONE : 기본값
  • - gadgets.io.AuthorizationType.SIGNED : 서명 요청
  • - gadgets.io.AuthorizationType.OAUTH : OAuth 프로토콜을 사용

서명 요청을 하려면, AUTHORIZATION에 gadgets.io.AuthorizationType.SIGNED를 지정합니다.

var url = "http://your.server.host/recent";
var params = {};
params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
gadgets.io.makeRequest(url, function(response) {
  // do something...
}, params);

외부 서버로의 요청 전송시에는, 다음과 같은 매개변수가 추가로 전달됩니다.

  • - oauth_consumer_key : nate.com
  • - oauth_signature_method: RSA-SHA1

외부 서버는, 이 매개변수 값으로 서명하고, 공개키를 사용하여 요청을 인증합니다.

페이지 위로

앱스토어 어플리케이션 플랫폼 공개키 정보

  • - oauth_consumer_key : nate.com
  • - xoauth_signature_publickey : http://devsquare.nate.com/public.crt
  • - oauth_signature_method : RSA-SHA1
  • - certificate Location : http://devsquare.nate.com/public.crt
  • - certificate Text
-----BEGIN CERTIFICATE-----
MIIDEjCCAnugAwIBAgIBADANBgkqhkiG9w0BAQUFADBqMQswCQYDVQQGEwJLUjEO
MAwGA1UECBMFS29yZWExDjAMBgNVBAcTBVNlb3VsMRkwFwYDVQQKExBTa0NvbW11
bmljYXRpb25zMQ0wCwYDVQQLEwRHU0RUMREwDwYDVQQDEwhuYXRlLmNvbTAeFw0w
OTA2MDQwMzExMzFaFw0xMDA2MDQwMzExMzFaMGoxCzAJBgNVBAYTAktSMQ4wDAYD
VQQIEwVLb3JlYTEOMAwGA1UEBxMFU2VvdWwxGTAXBgNVBAoTEFNrQ29tbXVuaWNh
dGlvbnMxDTALBgNVBAsTBEdTRFQxETAPBgNVBAMTCG5hdGUuY29tMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQDOqs9CIn3iUNlYPbpyz5VQitoEW85YAQHm0AUz
VoHgFTc3uyefPmqEcfk8idWdWCOkzoR2SM8jmQCSQThyTH+LlhPvPK7TFQgapI0s
1KHHS2nUNpEm5X26IqBthxdPccYkQ4FPaOnZBgxbyUeEVEczF4H0cJ1Hwtnye+2B
X1MAGQIDAQABo4HHMIHEMB0GA1UdDgQWBBQsNFgi61VyYF2TfnQuJbVDJ6GNEDCB
lAYDVR0jBIGMMIGJgBQsNFgi61VyYF2TfnQuJbVDJ6GNEKFupGwwajELMAkGA1UE
BhMCS1IxDjAMBgNVBAgTBUtvcmVhMQ4wDAYDVQQHEwVTZW91bDEZMBcGA1UEChMQ
U2tDb21tdW5pY2F0aW9uczENMAsGA1UECxMER1NEVDERMA8GA1UEAxMIbmF0ZS5j
b22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAbsSxeoWiKgzub
T613jL1MGqOjZ9psiYs+mG7mYGxRY0Ol0M5G8Iz6tx1R7wir5cUNFJt0QRENJ0lH
nAJ7lUrrxMs9HblOILdARKjkIHNhzp6pl6YKOstxxJaNPXma6U9BV+X1Gj7fz/fj
T3h1PXlrMldLhw6Yhn+KO/vdd/m4HQ==
-----END CERTIFICATE-----

외부 서버에서 서명된 요청을 인증하는 방법은 아래 링크를 참고하세요.

OAuth를 활용한 인증은 아래 링크를 참고하세요.

페이지 위로