한국의 오픈소셜 컨테이어는 오픈소셜사이트의 컨테이너 목록 을 보면 cyworld와 IDTail 두곳이 있다.
오픈소셜에 애플리케이션을 만들기 위해 기존의 사이트를 오픈소셜용으로 재작업 하는데 기존의 서비스가 Jquery 로 구동되는지라 makeRequest 를 이용하여 JQuery의 Ajax함수를 오버라이드 하여 사용하니 개발 시간적인 측면에서 상당히 효과적이였다.
- /* overwrite $.ajax to opensocial ajax */
- var global_callback_func = "";
- function ajaxRequest(url, callback_func, post_params){
- var queryString = "";
- for (k in post_params) {
- if(typeof post_params[k] == "object"){
- $.each(post_params[k],function(name,value){
- if(name == "name"){
- queryString += "&" + value + "=";
- }
- if(name == "value"){
- queryString += encodeURIComponent(value);
- }
- });
- }else{
- queryString += "&" + k + "=" + encodeURIComponent(post_params[k]);
- }
- }
- var osParams = {};
- osParams[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
- osParams[gadgets.io.RequestParameters.POST_DATA] = queryString;
- osParams[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
- global_callback_func = callback_func;
- gadgets.io.makeRequest(url, makeRequest_callback, osParams);
- }
- function makeRequest_callback(result){
- global_callback_func(result.data);
- }
- $.ajax = function(objAjax){
- ajaxRequest(objAjax.url, objAjax.success, objAjax.data);
- }
Ajax 라이브러리를 모두 포함 시키고 마지막에 위의 코드로 오버라이드 하면 기존의 자바스크립트 변경을 최소화 하여 오픈소셜 컨테이너로 포팅 할수 있다.