등록된 인증 서버와의 연동을 통해 인증이 완료된 사용자에게만 답변을 응답할 수 있습니다. 최초 1회의 인증이 완료되면, 해당 사용자의 정보가 유지되는 동안에는 추가 인증 절차 없이 답변을 응답합니다.
인증 서비스를 연동하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼의 콘솔에서 Services > CLOVA Chatbot > Domain 메뉴를 차례대로 클릭해 주십시오.
- 원하는 도메인의 [빌더 실행하기] 버튼을 클릭하여 챗봇 빌더를 실행해 주십시오.
- 챗봇 빌더에서 챗봇 설정 > 서비스 연동 탭을 클릭해 주십시오.
- 인증 서비스의 [연동] 버튼을 클릭해 주십시오.
- 서비스 연동 창에서 인증 URL을 입력해 주십시오.
- 사용자가 질문을 입력하면 챗봇은 인증된 사용자인지 판단하기 위해 POST {URL}/confirm을 호출하여 입력된 인증 서버에 인증 여부를 확인
- {URL}은 도메인 관리자가 입력한 인증 URL
- 챗봇은 사용자의 ID와 플랫폼 정보를 함께 전달
{
"userId": "${userId}",
"platform": "${platform}",
"domainCode":"${domainCode}"
}
값 |
필수 |
타입 |
설명 |
userId |
Y |
String |
사용자의 아이디 |
platform |
Y |
String |
메신저 플랫폼 |
domainCode |
Y |
String |
현재 도메인의 코드 |
- 만약 인증된 사용자인 경우 인증 서버는 다음과 같이 응답을 전달해주어야 합니다.
{
"valid": true
}
값 |
필수 |
타입 |
설명 |
valid |
Y |
Boolean |
사용자가 인증된 사용자라면 true가 리턴 |
- 인증 요청 메시지와 인증 실패 메시지, 인증 오류 메시지를 입력하고 [연동] 버튼을 클릭해 주십시오.
- 만약 인증되지 않은 사용자 또는 인증에 실패한 사용자인 경우, 챗봇은 인증 요청 메시지 또는 인증 실패 메시지와 함께 Login 링크가 담긴 URL 버튼을 사용자에게 응답합니다.
GET {URL}/login?userId=${userId}&platform=${platform}&domainCode=${domainCode}
- 만약 Login에 성공하면 인증 서버는 Invoke URL을 호출합니다.
Invoke URL을 호출하는 경우 아래의 데이터가 포함되어 있어야 합니다.{
"domainCode": "String",
"platform": "String",
"userId": "String",
"nonce": "Option[String]",
"needPush": true
}
값 |
필수 |
타입 |
설명 |
platform |
Y |
String |
메신저 플랫폼 정보 |
userId |
Y |
String |
사용자 구분을 위한 아이디 |
nonce |
Y |
String |
link에 사용하기 위한 임시 암호 값. nonce 값이 존재할 경우 link api를 호출할 때 받은 nonce값을 담아 호출 |
needPush |
Y |
Boolean |
답변을 구한 뒤 push 가 필요할 경우 사용. LINE, TalkTalk 메신저만 지원 |
- 로그인 성공 요청이 챗봇 빌더에 전달되면 해당 사용자의 인증 성공에 대한 확인으로 link 리퀘스트를 요청합니다.
POST {URL}/link
{
"userId": "String",
"platform": "String",
"domainCode": "String",
"nonce": "Option[String]"
}
값 |
필수 |
타입 |
설명 |
userId |
Y |
String |
사용자 구분을 위한 아이디 |
platform |
Y |
String |
메신저 플랫폼 정보 |
domainCode |
Y |
String |
도메인을 구분하기 위한 도메인 코드 |
nonce |
N |
String |
받은 nonce 값이 존재할 경우 api를 호출할 때 받은 값을 담아 호출 |
- POST {URL}/link를 호출했을 때 200OK가 전달되면 link에 성공했다고 판단합니다.
- link에 성공하면 처음 사용자가 진입했을 때 질문했던 내용에 대해 답변을 찾아 응답합니다.
- link에 실패하면 인증 실패 메시지와 함께 재로그인을 유도합니다.
- 만약 로그인 성공 요청에서 needPush: true인 경우 push가 가능한 플랫폼이면 구해진 답변을 push 합니다.