4. API 설명 - GiGAGenie-ServiceSDK/UserGuide GitHub Wiki

4.1 API 초기화 (gigagenie)

4.1.1 API 초기화 (gigagenie.init)

GiGA Genie Service API를 초기화 한다. GiGA Genie Service API를 이용하기 위해서는 API 초기화가 반드시 진행되어야 한다.

  • function init(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.apikey : String, Mandatory이며 개발자 사이트에서 받은 apikey 를 설정해야 하며, 등록된 apikey가 아닌 경우에는 오류가 발생한다.
    • options.keytype : String, Mandatory 이며 api key 유형으로 다음의 유형을 지원한다. (이용가이드 V1.0 에서는 GBOXCOMM 만 지원)
      • options.keytype="GBOXCOMM" : G-Box 상용 키
  • extra 값은 null 이다.

  • result_cd 가 200 으로 initialization 이 성공하지 않았을 경우 API 는 동작하지 않는다. API 사용전에 callback 에서 result_cd 가 200 으로 리턴했는지 확인해야 한다.

  • 사용 예

//callback 방식
var options={};
options.apikey="asdnblkb1231lkj3nrlkjlkjsfsdf";
options.keytype="GBOXCOM";  
gigagenie.init(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
            console.log("initialize success");
    };
});

//promise 방식
var options={};
options.apikey="asdnblkb1231lkj3nrlkjlkjsfsdf";
options.keytype="GBOXEMUL";
gigagenie.init(options).then(function(extra){
    console.log("initialize success");
}).catch(function(result_cd,result_msg,extra){
    console.log("initialize fail");
})  

4.2 Voice API (gigagenie.voice)

4.2.1 음성인식 API (gigagenie.voice.getVoiceText)

사용자에게 음성 안내 후 음성 인식을 한다. TTS 출력 중에 stopTTS를 수신하면 TTS와 음성인식 모두 종료된다. 음성인식이 진행되면 해당 음성인식을 종료할 수 없다. (Timeout으로 처리)

  • function getVoiceText(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.mode : Int, Mandatory 로 음성 인식 결과의 후처리를 설정한다.
      • options.mode=0 : 음성인식 결과를 전달한다.
      • options.mode=1 : 음성인식 결과를 대화서버로 전달한다.
        음성인식결과는 undefined로 전달되며, 이후 onActionEvent로 이벤트를 받거나 다른 앱이 실행된다.
      • options.mode=2 : 확인에 대한 음성인식을 수행한다.
        음성인식결과는 undefined로 넘겨지며 이후 onVoiceCommand로 "confirm", "cancel"을 전달한다. 확인으로 해석되지 않는 경우 결과값이 전달되지 않는다.
      • options.mode=3 : 번호 선택에 대한 음성인식을 수행한다.
        음성인식결과는 undefined로 전달되며, 이후 onSelectedNumber에 인식된 번호를 전달된다. 번호가 인식되지 않으면 결과값이 전달되지 않는다.
    • options.voicemsg : String, Optional으로 voicemsg 내용을 TTS로 재생한 후 음성 인식을 시작한다.
  • result_cd 에 다음의 값이 전달된다.

    • 200: 음성인식 성공, extra.voicetext에 인식된 결과가 전달된다.
    • 500: Timeout 발생 등으로 음성 인식 실패, extra.voicetext에는 "ASR session timeout" 가 전달된다.
    • 501: KWS(KeyWord Spotting)에 의해 정지됨
    • 502: 재생 실패
    • 503: stopTTS에 의한 TTS 종료
  • extra 값에 다음이 설정되어 전달된다.

    • extra.voicetext : String, Mandatory 로 음성인식된 Text 가 전달된다.
  • 사용 예

//callback 방식으로, 즉시 음성 인식을 할 경우
gigagenie.voice.getVoiceText(null,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("Received Text is "+extra.voicetext);
    };
});
//callback 방식으로, TTS로 재생한 후 음성 인식을 할 경우
var options={};
options.voicemsg="생년월일을 말해 주세요"
gigagenie.voice.getVoiceText(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("Received Text is "+extra.voicetext);
    };
});
//promise 방식
gigagenie.voice.getVoiceText(null).then(function(extra){
    console.log("Received Text is "+extra.voicetext);
}).catch(function(result_cd,result_msg,extra){
//
})
4.2.2 TTS API (gigagenie.voice.sendTTS)

입력 Text 를 사용자에게 음성으로 전달한다. stopTTS API에 의해서 중지된다.

  • function sendTTS(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.ttstext : String, Mandatory 로 ttstext 를 입력 Text 로 TTS 를 실행한다.
      • [DS] ~ [/DS] : TAG 사이의 숫자를 끊어 읽는다. 숫자는 기본적으로 붙여서 읽도록 되어 있다.
        • 예: [DS]1234[/DS]는 "일이삼사"로, 1234는 "천이백삼십사"로 플레이한다.
      • [IS] ~ [/IS] : TAG 사이의 알파벳, 숫자 등을 끊어 읽는다.
        • 예: [IS]name[/IS] 는 '엔에이엠이'로 name은 "네임"으로 플레이한다.
      • [P1] : 100ms의 묵음을 삽입한다.
      • [P2] : 200ms의 묵음을 삽입한다.
      • [P3] : 300ms의 묵음을 삽입한다.
  • extra 값은 null 이다.

    • result_cd 에 다음의 값이 전달된다.

      • 200: TTS 재생 성공
      • 409: sendTTS로 TTS 재생중임
      • 501: KWS(KeyWord Spotting)에 의해 정지됨
      • 502: 재생 실패
      • 503: 다른 App에서 TTS 중지 메시지를 보냄(stopTTS에 의한 종료)
    • 사용 예

//callback 방식
var options={};
options.ttstext="안녕기가지니"
gigagenie.voice.sendTTS(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        //do next action
    } else {
        //extra.reason 에 voice 오류 전달.
    };
});
//promise 방식
var options={};
options.ttstext="안녕기가지니"
gigagenie.voice.sendTTS(options).then(function(extra){
    //do next action
}).catch(function(result_cd,result_msg,extra){
    //extra.reason 에 voice 오류 전달.
})
4.2.3 음성명령수신 API (gigagenie.voice.onVoiceCommand)

다음페이지, 이전페이지등 음성 명령 코드를 수신한다.

  • gigagenie.voice.onVoiceCommand 콜백 구현

  • 콜백은 function callback(event,extra) 로 구현해야 하며 event 는 다음의 음성명령에 대해서 Text 로 전달한다.

    • 다음페이지: nextPage
    • 이전페이지: prevPage
  • 사용 예

gigagenie.voice.onVoiceCommand=function(event){
    switch(event){
        case 'nextPage':
            //navigate next page
            break;
        case 'prevPage':
            //navigate prev page
            break;
        default:
            break;
    }
};
4.2.4 음성선택번호수신 API (gigagenie.voice.onSelectedIndex)

선택 가능한 UI 상에서 사용자가 음성으로 선택한 번호 전달

  • gigagenie.voice.onSelectedIndex 콜백 구현

  • 콜백은 function callback(event) 로 구현해야 하며 event 는 선택된 숫자가 넘겨진다.

  • 사용 예

gigagenie.voice.onSelectedIndex=function(event){
    switch(event){
        case 1:
            //1번 선택
            break;
        case 2:
            //2번 선택
            break;
        case 3:
            //3번 선택;
        case 4:
            //4번 선택
            break;
        default:
            break;
});
4.2.5 서비스종료수신 API (gigagenie.voice.onRequestClose)

음성명령(종료, 닫기 발화에 따른)과, 리모컨 나가기 키 클릭시 서비스 종료 이벤트를 전달한다. onRequestClose 콜백에서 종료 처리를 할 경우 마지막에 gigagenie.voice.svcFinished 를 호출해 줘야 한다.

  • gigagenie.voice.onRequestClose 콜백 구현

  • 콜백은 function callback() 로 구현해야 한다.

  • 사용 예

gigagenie.voice.onRequestClose=function(){
    // 3rd party 내부 웹 서비스 종료 처리…
    ….
    gigagenie.voice.svcFinished(null,function(result_cd,result_msg,extra){
    };
});
4.2.6 서비스종료 API (gigagenie.voice.svcFinished)

음성명령(닫기)이나 리모컨 나가기 키에 의한 서비스 종료 요청을 수신하거나 화면상의 ‘닫기’ 버튼 클릭 시 자체 종료처리(e.g. 앱 세션 정리)를 진행하고 종료 처리한다. 종료 요청을 수신하고 자체 종료 처리 후 서비스종료 API 를 명시적으로 호출해 주어야 해당 서비스가 종료된다.

  • function svcFinished(options,callback)

  • options 은 null 이다.

  • extra 값은 null 이다.

  • 사용 예

//callback 방식
gigagenie.voice.svcFinished(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("service finish success");
    };
});
//promise 방식
gigagenie.voice.svcFinished(options).then(function(extra){
    console.log("service finish success");
}).catch(function(result_cd,result_msg,extra){
    console.log("service finish fail");
})
4.2.7 Action 수신 API (gigagenie.voice.onActionEvent)

등록된 Action 에 대한 수신 Event 이다. 등록된 Action 은 대화 SDK 를 통해서 ActionCode (대화 SDK: Intent명)가 등록되어 있어야 한다. 현재 실행중인 appid 에 대한 Action 수신시 Event 를 전달한다.

  • gigagenie.voice.onActionEvent 콜백 구현

  • 콜백은 function callback(extra) 로 구현해야 하며 extra 에는 actioncode 와 actionpath 및 parameter 가 전달된다.

    • actioncode : 발화 Intent 와 동일
    • actionpath : 등록한 이동 Path
    • parameter : 대화서버에서 전달하는 parameter JSON 값
  • onActionEvent 콜백이 정의되지 않으면 해당 actionpath 로 자동 이동한다.

  • 사용 예

gigagenie.voice.onActionEvent=function(extra){
    switch(extra.actioncode){
        case ‘QueryHello’:
            //QueryHello 처리
            break;
        case ‘QueryWorld’:
            //QUeryWorld 처리
            break;
        default:s
            break;
});
4.2.8 TTS 중단 API (gigagenie.voice.stopTTS)

TTS를 중단한다. 4.2.2 TTS API에만 적용된다.

  • function stopTTS(options,callback)

  • options 은 null 이다.

  • extra 값은 null 이다.

  • result_cd에 다음의 값이 전달된다.

    • 200 : 중단 성공
    • 500 : 실행 오류
  • 사용 예

//callback 방식
gigagenie.voice.stopTTS(null,function(result_cd,result_msg,extra){
    if(result_cd===200){
        //do next action
    } else {
        //result_cd, result_msg 오류 전달
    };
});

4.3 통화 API (gigagenie.call)

4.3.1 통화요청 API (gigagenie.call.requestCall)

입력한 번호로 GiGA Genie 통화 서비스를 요청한다.

  • function requestCall(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.callnumber : String, Mandatory 로 callNumber 에 통화를 요청한다.
    • options.calltype : Int, Mandatory 로 0 은 음성통화, 1 은 영상통화를 요청한다.
  • 사용 예

//callback 방식
var options={};
options.callnumber="021234567";
options.calltype=0;
gigagenie.call.requestCall(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("Received Call Number is "+extra.callnumber);
    };
});

//promise 방식
var options={};
options.callnumber="021234567";
options.calltype=0;
gigagenie.call.requestCall(options).then(function(extra){
    console.log("Received Call Number is "+extra.callnumber);
}).catch(function(result_cd,result_msg,extra){
//
})

4.4 데이터관리 API (gigagenie.appdata)

4.4.1 데이터네임스페이스생성 API (gigagenie.appdata.createNameSpace)

특정 이름의 데이터네임스페이스를 생성한다.

  • function createNameSpace(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.namespace : String, Mandatory 로 생성하고자 하는 NameSpace 이름이다.
    • options.shareflag : String, Mandatory 로 해당 NameSpace 에 대한 공유여부를 설정한다. (이용가이드 V1.0 에서는 options.shareflag 는 ‘N’ 만 지원)
      • options.shareflag = ‘N’ : App 전용 데이터 생성
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 409: 이미 존재하는 namespace 임
    • 500: 시스템 Error
  • 사용 예

//callback 방식
var options={};
options.namespace=’userappprofile’;
options.shareflag=’N’;
gigagenie.appdata.createNameSpace(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("Namespace creation is success.");
    } else {
        console.log("Namespace creation is fail.");
    }
});

//promise 방식
var options={};
options.namespace=’userappprofile’;
options.shareflag=’N’;
gigagenie.appdata.createNameSpace (options).then(function(extra){
    console.log("Namespace creation is success.");
}).catch(function(result_cd,result_msg,extra){
    console.log("Namespace creation is fail.");
})
4.4.2 데이터네임스페이스삭제 API (gigagenie.appdata.destroyNameSpace)

특정 이름의 데이터네임스페이스를 생성한다. 네임스페이스 삭제시, 해당 네임스페이스의 모든 데이터도 삭제된다.

  • function destroyNameSpace(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.namespace : String, Mandatory 로 삭제하고자 하는 NameSpace 이름이다.
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 404: 존재하지 않는 네임스페이스임
    • 500: 시스템 Error
  • 사용 예

//callback 방식
var options={};
options.namespace=’userappprofile’;
gigagenie.appdata.destroyNameSpace(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("Namespace destroy is success.");
    } else {
        console.log("Error");
    }
});
//promise 방식
var options={};
options.namespace=’userappprofile’;
gigagenie.appdata.destroyNameSpace (options).then(function(extra){
    console.log("Namespace destroy is success.");
}).catch(function(result_cd,result_msg,extra){
    console.log("Namespace creation is fail.");
})
4.4.3 데이터 조회 API (gigagenie.appdata.getKeyData)

특정 이름의 데이터네임스페이스의 Key 에 대한 Data 를 조회한다.

  • function getKeyData(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.namespace : String, Mandatory 조회하고자 하는 appdata Namespace
    • options.key : String, Mandatory 로 해당 NameSpace 에서 조회하고자 하는 데이터 Key
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 403: 해당 NameSpace 가 존재하지 않음
    • 404: 해당 Key 가 존재하지 않음
    • 500: 시스템 Error
  • extra 값에 다음이 설정되어 전달된다.

    • extra.data : String, Mandatory 로 key 에 대한 text 데이터가 전달된다.
  • 사용 예

//callback 방식
var options={};
options.namespace=’userappprofile’;
options.key=’appusername’;
gigagenie.appdata.getKeyData(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log(options.key + ":" + extra.data);
    } else {
        console.log("Error");
    }
});
//promise 방식
var options={};
options.namespace=’userappprofile’;
options.key=’appusername’;
gigagenie.appdata.getKeyData (options).then(function(extra){
    console.log(options.key + ":" + extra.data);
}).catch(function(result_cd,result_msg,extra){
console.log("Error");
})
4.4.4 데이터 설정 API (gigagenie.appdata.setKeyData)

특정 이름의 데이터네임스페이스에 Key 의 Data 를 설정한다.

  • function setKeyData(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.namespace : String, Mandatory 설정하고자 하는 key 의 appdata Namespace
    • options.key : String, Mandatory 로 해당 NameSpace 에서 설정하고자 하는 데이터의 Key
    • options.data : String, Mandatory 로 해당 NameSpace 의 Key 에 설정된 데이터
  • result_cd 는 다음과 같이 정의된다

    • 200: 성공
    • 403: 해당 NameSpace 가 존재하지 않음
    • 406: 저장 Key 개수 초과
    • 413: 데이터 용량 초과
    • 500: 시스템 Error
  • 사용 예

//callback 방식
var options={};
options.namespace='userappprofile';
options.key='appusername';
options.data='helloappdata';
gigagenie.appdata.setKeyData(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log(options.key + ":" + extra.data + " is set");
    } else {
        console.log("Error");
    }
});
//promise 방식
var options={};
options.namespace='userappprofile';
options.key='appusername';
options.data='helloappdata';
gigagenie.appdata.setKeyData (options).then(function(extra){
    console.log(options.key + ":" + extra.data + " is set");
}).catch(function(result_cd,result_msg,extra){
    console.log("Error");
})
4.4.5 데이터 삭제 API (gigagenie.appdata.delKeyData)

특정 이름의 데이터네임스페이스에 Key 와 Data 를 삭제한다.

  • function delKeyData(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.namespace : String, Mandatory 삭제하고자 하는 key 의 appdata Namespace
    • options.key : String, Mandatory 로 해당 NameSpace 에서 삭제하고자 하는 Key
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 403: 해당 NameSpace 가 존재하지 않음
    • 404: 해당 Key 가 존재하지 않음
    • 500: 시스템 Error
  • 사용 예

//callback 방식
var options={};
options.namespace='userappprofile';
options.key='appusername';
gigagenie.appdata.delKeyData(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log(options.key + ":" + extra.data + " is deleted");
    } else {
        console.log("Error");
    }
});
//promise 방식
var options={};
options.namespace='userappprofile';
options.key='appusername';
gigagenie.appdata.delKeyData (options).then(function(extra){
    console.log(options.key + ":" + extra.data + " is deleted");
}).catch(function(result_cd,result_msg,extra){
    console.log("Error");
})
4.4.6 Key 찾기 API (gigagenie.appdata.findKeys)

특정 이름의 데이터네임스페이스에서 Key 를 찾는다.

  • function findKeys(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.namespace : String, Mandatory 조회하는 key 의 appdata Namespace
    • options.keytext : String, Mandatory 로 해당 NameSpace 에서 조회하고자 하는 KeyText
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 403: 해당 NameSpace 가 존재하지 않음
    • 404: 해당 Key 가 존재하지 않음
    • 500: 시스템 Error
  • extra 값에 다음이 설정되어 전달된다.

    • extra.keys : String Array, Mandatory 로 해당 keytext 로 찾은 Key 배열이 전달된다.
  • 사용 예

//callback 방식
var options={};
options.namespace='userappprofile';
options.keytext='appuser';
gigagenie.appdata.findKeys(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("Find Key Count=" + extra.keys.length);
        extra.keys.forEach(function(key){
            console.log("Key is "+ key);
        });
    } else {
        console.log("Error");
    }
});
//promise 방식
var options={};
options.namespace='userappprofile';
options.keytext='appuser';
gigagenie.appdata.findKeys (options).then(function(extra){
    console.log("Find Key Count=" + extra.keys.length);
    extra.keys.forEach(function(key){
        console.log("Key is "+ key);
    });
}).catch(function(result_cd,result_msg,extra){
    console.log("Error");
})

4.5 G-Box 정보 관리 API (gigagenie.appinfo)

4.5.1 ContainerId 조회 API (gigagenie.appinfo.getContainerId)

해당 앱에 대한 G-Box 의 ContainerId 를 조회한다.

  • function getContainerId(options,callback)

  • options 은 null 이다.

  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • extra 값에 다음이 설정되어 전달된다.

    • extra.containerid: String, Mandatory 로 Container 의 ID 값이다.
  • 사용 예

//callback 방식
var options={};
gigagenie.appinfo.getContainerId(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("The container id is " + extra.containerid);
    } else {
        console.log("getContainerId is fail.");
    }
});
//promise 방식
var options={};
gigagenie.appinfo.getContainerId(options).then(function(extra){
    console.log("The container id is " + extra.containerid);
}).catch(function(result_cd,result_msg,extra){
    console.log("getContainerId is fail.");
})
4.5.2 AuthKey 조회 API (gigagenie.appinfo.getAuthKey)

해당 앱에 대한 G-Box 의 AuthKey 를 조회한다.

  • function getAuthKey(options,callback)

  • options 은 null 이다.

  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 404: AuthKey 설정되어 있지 않음
    • 500: 시스템 Error
  • result_cd 가 200 이면 extra 값에 다음이 설정되어 전달된다.

    • extra.authkey: String, Mandatory 로 authKey 값이다.
    • extra.settime: String, Mandatory 로 authKey 가 설정된 시간이다. (형식: YYYYMMDDhhmmss, 20170519184202)
    • extra.duetime: String, Mandatory 로 authKey 의 만료 예정 시간이다.
  • 사용 예

//callback 방식
var options={};
gigagenie.appinfo.getAuthKey(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("Key value is " + extra.authkey);
        console.log("SetTime value is " + extra.settime);
        console.log("DueTime value is " + extra.duetime);
    } else if(result_cd===404){
        console.log("Key is not set.");
    } else {
        console.log("getAuthKey is fail.");
    }
});
//promise 방식
var options={};
gigagenie.appinfo.getAuthKey(options).then(function(extra){
        console.log("Key value is " + extra.authkey);
        console.log("SetTime value is " + extra.settime);
        console.log("DueTime value is " + extra.duetime);
}).catch(function(result_cd,result_msg,extra){
    if(result_cd===404){
        console.log("Key is not set.");
    } else {
        console.log("getAuthKey is fail.");
    }
})
4.5.3 AuthKey 설정 API (gigagenie.appinfo.setAuthKey)

해당 앱에 대한 G-Box 의 AuthKey 를 설정한다.

  • function setAuthKey(options,callback)

  • options 은 다음과 같다.

    • options.authkey : String, Mandatory 로 설정하고자 하는 authkey 이다. (자리수 제한 있음:256Byte, 2048Bit)
    • options.duetime : String, Optional 로 설정하고자 하는 authkey 의 만료 시간이다. (형식: YYYYMMDDhhmmss, 20170519184202)
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 400: authkey 제한 초과
    • 500: 시스템 Error
  • 사용 예

//callback 방식
var options={};
options.authkey=’asdasldkjalskdasd’;
options.duetime=’20180519184202’;
gigagenie.appinfo.setAuthKey(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("AuthKey Set is Success");
    } else {
        console.log("AuthKey Set is fail.");
    }
});
//promise 방식
var options={};
options.authkey=’asdasldkjalskdasd’;
options.duetime=’20180519184202’;
gigagenie.appinfo.setAuthKey(options).then(function(extra){
        console.log("AuthKey Set is Success");
}).catch(function(result_cd,result_msg,extra){
    if(result_cd===400){
        console.log("AuthKey Size exceeded.");
    } else {
        console.log("AuthKey Set is fail.");
    }
})
4.5.4 AuthKey 삭제 API (gigagenie.appinfo.delAuthKey)

해당 앱에 대한 G-Box 의 AuthKey 를 삭제한다.

  • function delAuthKey(options,callback)

  • options 은 null 이다.

  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • 사용 예

//callback 방식
var options={};
gigagenie.appinfo.delAuthKey(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("AuthKey Deleting is Success");
    } else {
        console.log("AuthKey Deleting is fail.");
    }
});
//promise 방식
var options={};
gigagenie.appinfo.setAuthKey(options).then(function(extra){
        console.log("AuthKey Deleting is Success");
}).catch(function(result_cd,result_msg,extra){
        console.log("AuthKey Deleting is fail.");
})
4.5.5 Push 보내기 API (gigagenie.appinfo.sendPushMsg)

해당 GiGA Genie 에 등록된 GiGA Genie Companion App 에 Push 메시지를 보낸다. Push 메시지는 모바일 단말에 푸시 팝업이 보여지며 해당 팝업 클릭시 해당 msg(URL)로 모바일 단말의 웹브라우저를 실행시킨다.

  • function sendPushMsg(options,callback)

  • options 은 다음과 같다.

    • options.target : String, Mandatory 로 다음을 설정한다.
      • COMP_APP: 해당 G-Box 에 연계된 Companion App 을 타겟으로 한다.
    • options.msgtype: String, Mandatory 로 다음을 설정한다.
      • EXEC_WEB : Web Browser 의 URL 에 해당 msg 를 전달-실행한다.
    • options.msg : String, Mandatory 로 보내고자 하는 msg 이다.
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • 사용 예

//callback 방식
var options={};
options.target=’COMP_APP’;
options.msgtype=’EXEC_WEB’;
options.msg=’http://hello.world/hello?msg=world’;
gigagenie.appinfo.sendPushMsg(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        console.log("Sending Push msg to companion app is Success");
    } else {
        console.log("Sending Push msg to companion app Set is fail.");
    }
});
//promise 방식
var options={};
options.target=’COMP_APP’;
options.msgtype=’EXEC_WEB’;
options.msg=’http://hello.world/hello?msg=world’;
gigagenie.appinfo. sendPushMsg (options).then(function(extra){
        console.log("Sending Push msg to companion app is Success");
}).catch(function(result_cd,result_msg,extra){
        console.log("Sending Push msg to companion app Set is fail.");
})
4.5.6 Screen 제한 조회 API (gigagenie.appinfo.getScreenLimit)

Screen 이용 제한 상태를 조회한다.

  • function getScreenLimit(options,callback)

  • options 은 null 이다.

  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • extra에는 다음의 값이 전달된다.

    • limit : true이면 Screen 이용 불가 상태(대기모드에서 호출)
  • 사용 예

//callback 방식
var options={};
gigagenie.appinfo.getScreenLimit(options,function(result_cd,result_msg,extra){
    if(result_cd===200 && extra.limit==true){
        console.log("Display is avaliable");
    } else {
        console.log("getDisplayAvailable is fail.");
    }
});

4.6 G-Box Media API (gigagenie.media)

4.6.1 Mute 이벤트 API (gigagenie.media.onMuteRequest)

G-Box의 복합 상황에서 ContainerApp에 Mute 요청 이벤트 수신하는 콜배기다. G-Box 복합 상황은 ContainerApp에서 준수해야 되는 사항으로 HTML에서 동영상, 오디오 플레이 시에 onMuteRequest 이벤트를 수신하여 동영상, 오디오의 음성을 Off 해야 한다. (강제 사항으로, App 차단 가능함)

  • gigagenie.media.onMuteRequest

  • 콜백은 function callback(extra)로 구현해야 하며 extra에는 mute값이 전달된다.

    • mute: 오디오 On/Off에 대한 Boolean 값으로, true인 경우 오디오를 Off 시켜야 하며, false인 경우 mute가 해제된 경우 수신된다.
  • 사용 예

//callback 방식
var options={};
gigagenie.media.onMuteRequest=function(extra){
    if(extra.mute){
        console.log("mute requested ");
	//동영상, 오디오 Mute
    } else {
	console.log("mute is released ");
	//동영상, 오디오 Mute 해제
    };
});

4.7 Payment API (gigagenie.payment)

4.7.1 OTV 결제 사용자 확인(gigagenie.payment.otvCheckUser)

OTV 결제를 위한 사용자 인증 및 상태체크를 요청한다. 결제 이용 가능 사용자가 아닌 경우 가입 단계를 진행한다.

  • function otvCheckUser(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.homeShoppingCode : String, Mandatory제휴사 코드
    • options.payOption: Number, Mandatory 인증방법(1: 리모콘, 2: 음성)
    • options.packageName: String, Mandatory 제휴사 패키지 이름
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 409 : OTV 결제 사용자 확인 요청중임
    • 500: 시스템 Error
  • extra값은 200일 경우 다음이 전달된다.

    • extra.authResult: String 으로 인증 결과가 전달된다.
  • 사용 예

//callback 방식
var options={};
options.homeShoppingCode=’1111111111’;
options.payOption=2;
options.packageName=’aksdnalsd’;
gigagenie.payment.otvCheckUser(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        if(extra.authResult==’Success’){
            console.log(‘User Can Pay..’);
        }
    } else {
        console.log("setAudioRecog Fail”);
    }
});
4.7.2 OTV 결제 토큰 요청 (gigagenie.payment.otvReqPayToken)

OTV 결제 토큰을 요청한다. 결제가 불가능한 경우(목소리 미등록, OPAY 회원 미가입 등등) 에러코드만 리턴한다.

  • function otvReqPayToken(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.homeShoppingCode : String, Mandatory제휴사 코드
    • options.payOption: Number, Mandatory 인증방법(1: 리모콘, 2: 음성)
    • options.packageName: String, Mandatory제휴사 패키지 이름
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • extra값은 200일 경우 다음이 전달된다.

    • extra.reqResult: String 으로 인증 결과가 전달된다.
    • extra.purchaseAuthToken : OTV 결제 토큰
  • 사용 예

//callback 방식
var options={};
options.homeShoppingCode=’1111111111’;
options.payOption=2;
options.packageName=’aksdnalsd’;
gigagenie.payment.reqPayToken(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        if(extra.reqResult==’Success’){
            console.log(‘PayToken:’+extra.purchaseAuthToken);
        }
    } else {
        console.log("reqPayToken Fail”);
    }
});
4.7.3 OTV 결제 인증-토큰 요청 (gigagenie.payment.otvReqPayTokenWithAuth)

OTV 결제 토큰을 요청한다. 결제가 불가능한 경우(목소리 미등록, OPAY 회원 미가입 등등)의 경우 해당 인증-가입 단계를 진행하고 결제 토큰 발급이 된다.

  • function otvReqPayTokenWithAuth(options,callback)

  • options 은 다음과 같이 설정한다.

    • options.homeShoppingCode : String, Mandatory제휴사 코드
    • options.payOption: Number, Mandatory 인증방법(1: 리모콘, 2: 음성)
    • options.packageName: String, Mandatory제휴사 패키지 이름
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • extra값은 200일 경우 다음이 전달된다.

    • extra.reqResult: String 으로 인증 결과가 전달된다.
    • extra.purchaseAuthToken : OTV 결제 토큰
  • 사용 예

//callback 방식
var options={};
options.homeShoppingCode=’1111111111’;
options.payOption=2;
options.packageName=’aksdnalsd’;
gigagenie.payment.reqPayTokenWithAuth(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
        if(extra.reqResult==’Success’){
            console.log(‘PayToken:’+extra.purchaseAuthToken);
        }
    } else {
        console.log("reqPayToken Fail”);
    }
});

4.8 영상인식 API (gigagenie.vision)

4.8.1 영상인식 서비스 시작(gigagenie.vision.startFaceAnalysis)

Camera 가 부착된 GiGA Genie에서 영상인식 서비스를 시작한다. 영상인식 서비스가 시작되면 4.8.3의 onFaceAnalysisResult에 영상인식정보 Event가 올라온다.

  • function startFaceAnalysis(options,callback)

  • options는 null이다.

  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • extra값은 null이다.

  • 사용 예

//callback 방식
gigagenie.vision.startFaceAnalysis(null,function(result_cd,result_msg,extra){
    if(result_cd===200){
	console.log("startFaceAnalysis Success”);
    } else {
	console.log("startFaceAnalysis Fail”);
    }
});
4.8.2 영상인식 서비스 중지(gigagenie.vision.stopFaceAnalysis)

Camera 가 부착된 GiGA Genie에서 영상인식 서비스를 중지한다.

  • function stopFaceAnalysis(options,callback)

  • options는 null이다.

  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • extra값은 null이다.

  • 사용 예

//callback 방식
gigagenie.vision.stopFaceAnalysis(null,function(result_cd,result_msg,extra){
    if(result_cd===200){
	console.log("stopFaceAnalysis Success”);
    } else {
	console.log("stopFaceAnalysis Fail”);
    }
});
4.8.3 영상인식 정보 수신API (gigagenie.vision.onFaceAnalysisResult)

영상인식 서비스를 시작하면 인식 결과를 받는 Event Callback이다.

  • gigagenie.vision.onFaceAnalysisResult 콜백 구현

  • 콜백은 function callback(extra) 로 구현해야 하며 extra에는 다음의 Parameter가 전달된다.

    • userNameList : 인식된 사용자 이름의 JSON Array(String Array)
    • userIdList : 인식된 사용자 ContainerID JSON Array(String Array)
    • userAgeList : 인식된 사용자의 연령추정 값 JSON Array(String Array)
    • userGenderList : 인식된 사용자의 성별추정 값 JSON Array (String Array 임, 값은 M이면 남, F이면 여)
    • userExpressionList: 인식된 사용자의 표정 추정 값으로JSON Array (String Array 임, 값은 Neutral, Smile, null 임)
    • userCount : 감지된 사용자 수, Number
  • extra값은 null이다.

    • 1: QVGA 가로(320x240)
    • 2: VGA 세로(480x640)
    • 3: VGA 가로(640x480)
    • 4: HD (1280x720)
    • 5: FHD (1920x1080)
  • 사용 예

gigagenie.vision.onFaceAnalysisResult=function(extra){
    for(var i=0;i<userCount;i++){
        console.log(‘name:’+userNameList[i]);
        console.log(‘id:’+userIdList[i]);
        console.log(‘age:’+userAgeList[i]);
        .......
    }
});

4.9 Admin API (gigagenie.admin)

4.9.1 앱인증정보 조회(gigagenie.admin.getAuthAppList)

AuthKey가 설정된 앱 리스트를 조회한다. ktadmin 권한을 가진 appid만 호출 가능하다.

  • function getAuthAppList(options,callback)

  • options는 null이다.

  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • result_cd가 200일 경우 다음의 extra값이 전달된다.

    • extra.appidlist : String Array로 AuthKey 가 설정된 appid 리스트 JSON Object 이다.
  • 사용 예

//callback 방식
gigagenie.admin.getAuthAppList(null,function(result_cd,result_msg,extra){
    if(result_cd===200){
        var appidlist=extra.appidlist;
        for(var i=0;i<appidlist.length;i++) console.log(appidlist[i]);
    } else {
	console.log("getAppSetFlag Fail”);
    }
});
4.9.2 앱AuthKey 정보 삭제 (gigagenie.admin.delAuthKey)

AuthKey가 설정된 앱 리스트를 조회한다. ktadmin 권한을 가진 appid만 호출 가능하다.

  • function delAuthKey(options,callback)

  • options는 다음과 같다.

    • options.appid : String, Mandatory로 조회하고자 하는 appId이다.
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • extra는 null이다.

  • 사용 예

//callback 방식
var options={};
options.appid=”X0000000”;
gigagenie.admin.delAuthKey(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
	console.log("delAuthKey Success”);
    } else {
	console.log("delAuthKey Fail”);
    }
});
4.9.3 앱설정 데이터 삭제 (gigagenie.admin.delAppData)

AuthKey가 설정된 앱 리스트를 조회한다. ktadmin 권한을 가진 appid만 호출 가능하다.

  • function delAppData(options,callback)

  • options는 다음과 같다.

    • options.appid : String, Mandatory로 조회하고자 하는 appId이다.
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • extra는 null이다.

  • 사용 예

//callback 방식
var options={};
options.appid=”X0000000”;
gigagenie.admin.delAppData(options,function(result_cd,result_msg,extra){
    if(result_cd===200){
	console.log("delAppData Success”);
    } else {
	console.log("delAppData Fail”);
    }
});
4.9.4 앱설정정보조회 (gigagenie.admin.getAppSetFlag)

특정 앱의 상세 정보(인증, 데이터유무)를 조회한다. ktadmin 권한을 가진 appid만 호출 가능하다.

  • function getDetailInfo(options,callback)

  • options는 다음과 같다.

    • options.appid : String, Mandatory로 조회하고자 하는 appId이다.
  • result_cd 는 다음과 같이 정의된다.

    • 200: 성공
    • 500: 시스템 Error
  • result_cd가 200일 경우 다음의 extra값이 전달된다.

    • extra.authkeyflag : boolean 으로 AuthKey가 설정되어 있으면 true, 아니면 false 이다.
    • extra.dataflag : boolean 으로 해당 appId로 데이터가 저장되어 있으면 true, 그렇지 않으면 false 이다.
  • 사용 예

//callback 방식
var options={};
options.appid=’X0000000’;
gigagenie.admin.getAppSetFlag(null,function(result_cd,result_msg,extra){
    if(result_cd===200){
        if(extra.authkeyflag) console.log("AuthKey exists”);
	if(extra.authkeyflag) console.log("App Data exist”);
    } else {
	console.log("getAppSetFlag Fail”);
    }
});
⚠️ **GitHub.com Fallback** ⚠️