로그인 / Zendesk 챗과 통합
  문서로 돌아가기

로그인

Zendesk 챗과 통합

작동 방식

Zendesk 챗과 통합하면 내 프로젝트에 엑솔라 로그인 제품 사용자를 내 지원팀에 질문을 제출한 Zendesk Chat 방문자와 연결할 수 있습니다. Zendesk 쪽에서 사용된 external_id매개 변수는 내 로그인 프로젝트의 사용자 ID와 일치합니다. 방문자를 엑솔라 로그인 사용자로 식별하게 되면 이들의 계정을 관리자 페이지을 통해 관리할 수 있게 됩니다.

사용자

이미 로그인을 통합하고 Zendesk 챗 계정을 보유한 파트너.

획득 방법

방문자 연결 방법:

  1. 로그인 프로젝트에서 다음 요청 중 하나를 통해 사용자를 인증합니다.
  2. Zendesk JWT를 생성.
  3. Zendesk 챗으로 사용자를 인증.

Zendesk JWT 생성

Zendesk JWT는 로그인 프로젝트에서 사용자 인증 시 엑솔라 로그인 서버로부터 수신한 토큰에 기반합니다. Zendesk JWT를 생성할 때 필요한 도메인의 쿠키 파일에 토큰을 저장하고 이를 HTTP 요청에 추가할 수 있습니다.

또한 호출 구현 시 자체적인 응답 형식을 설정할 수 있습니다.

아래는 Go에 기반한 Zendesk JWT 취득 절차의 단순화 버전입니다. Zendesk JWT 생성 전체 코드는 GitHub에서 찾을 수 있습니다.

JWT 생성 전 다음 패키지를 설치합니다.

Copy
Full screen
Small screen
go get github.com/dgrijalva/jwt-go
go get github.com/rs/cors

Zendesk JWT 취득 방법:

  1. JWT 검증.
  2. JWT 해독.
  3. JWT 요청 목록 작성.
  4. JWT 서명.

JWT 검증

쿠키 파일에서 JWT를 추출하고 이를 관리자 페이지 > 로그인 프로젝트 > 일반 설정 > 비밀 키의 비밀 키로 검증합니다.
Copy
Full screen
Small screen
cookie, err := r.Cookie("token")

token, err := jwt.Parse(cookie.Value, func(token *jwt.Token) (interface{}, error) {
  if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
    return nil, errors.New("unexpected signing method")
  }
  return []byte(loginSecret), nil
})

var loginClaims jwt.MapClaims
var ok bool
if loginClaims, ok = token.Claims.(jwt.MapClaims); !ok || !token.Valid {
  writeErrorResponse(w, "00-01", "Token is invalid", http.StatusUnauthorized)
  return
}

JWT 해독

JWT를 해독하고 이로부터 다음 클레임의 값을 추출합니다.
  • email — 이메일 주소
  • sub — 사용자 ID
Copy
Full screen
Small screen
var sub, email string
sub, _ = loginClaims["sub"].(string)
email, _ = loginClaims["email"].(string)

JWT 요청 목록 작성

JWT 요청 목록을 작성합니다. 모든 요청에 대한 설명은 Creating a JWT token 모듈에서 찾을 수 있습니다.
Copy
Full screen
Small screen
zendeskClaims := jwt.MapClaims{}
zendeskClaims["name"] = email
zendeskClaims["email"] = email
zendeskClaims["external_id"] = sub
zendeskClaims["iat"] = time.Now().UTC().Unix()

JWT 서명

여러분의 Zendesk 챗 계정의 비밀 키로 토큰에 서명합니다. 이는 Chat dashboard > Settings > Widget > Widget security 탭 > Visitor Authentication에서 찾을 수 있습니다.
Copy
Full screen
Small screen
zendeskToken := jwt.NewWithClaims(jwt.SigningMethodHS256, zendeskClaims)
zendeskTokenString, _ := zendeskToken.SignedString([]byte(zendeskSecret))

Zendesk 챗으로 방문자 인증

Zendesk 챗에 다음 방문자 데이터 추가 가능:

  • 이름
  • 이메일 주소
  • 식별자
Zendesk JWT 생성 중에 방문자 데이터가 추가됩니다.

수신된 Zendesk JWT로 Zendesk 챗 방문자 인증에 사용. 웹 SDK를 다음과 같이 authentication 옵션으로 초기화:

Copy
Full screen
Small screen
zChat.init({
  account_key: ACCOUNT_KEY,
  authentication: {
    jwt_fn: function(callback) {
      fetch('https://example.com:8001/generate/token', {
        credentials: "include"
      }).then(function(res) {
        res.text().then(function(body) {
          const jwt = JSON.parse(body).token;
          callback(jwt)
        });
      });
    }
  }
});

방문자 인증 절차는 지침웹 SDK에 기술되어 있습니다.

알림
SNS는 사용자 이메일 주소에 대한 데이터를 전달하지 않을 수 있습니다. 이메일 주소를 요청하려면 지침을 따르세요.

방문자 작업

성공적인 인증 이후,방문자는 Zendesk 챗 계정 > Visitors 모듈에 표시됩니다.

Visitors 엔드포인트로 작업하려면, 토큰 (지침)을 취득해야 합니다. 내 로그인 프로젝트에 연결된 방문자 데이터와 작업하는 경우:

  1. 방문자 데이터를 취득합니다.
  2. 내 로그인 프로젝트에 방문자가 연결됩니다.

방문자 데이터 가져오기

Show Visitor 요청을 실행하려면, Visitor ID를 가져와야 합니다. 이는 필요한 방문자를 선택하여 Zendesk 챗 계정에서 찾을 수 있습니다.

예제 Show Visitor (요청):

Copy
Full screen
Small screen

http

  • http
  • curl
GET https://www.zopim.com/api/v2/visitors/9855790-xjj3u5xPWhW1Fv HTTP/1.1
Authorization: Bearer <token>
curl --request GET \
  --url https://www.zopim.com/api/v2/visitors/9855790-xjj3u5xPWhW1Fv \
  --header 'authorization: bearer_token'

응답 예제:

Copy
Full screen
Small screen

http

  • http
  • curl
HTTP/1.1 200 OK
Content-Type: application/json

{
  "banned": false,
  "notes": "",
  "id": "9855790.xjj3ukxyIhn6j3",
  "email": "email@email.com",
  "phone": "",
  "created": 1586950554,
  "name": "email@email.com",
  "external_id": "82cd5e0c-c3ff-11e9-b199-c1e5fc81c37f"
}
{
  "banned": false,
  "notes": "",
  "id": "9855790.xjj3ukxyIhn6j3",
  "email": "email@email.com",
  "phone": "",
  "created": 1586950554,
  "name": "email@email.com",
  "external_id": "82cd5e0c-c3ff-11e9-b199-c1e5fc81c37f"
}
방문자가 로그인 프로젝트에 연결된 경우, 수신된 데이터의 external_id 매개 변수는 사용자 ID와 일치하게 됩니다. 사용자 ID는 관리자 페이지 > 로그인 프로젝트 > 사용자 > 사용자 이름/ID에서 찾을 수 있습니다.
이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
마지막 업데이트: 2024년 9월 18일

오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.

문제 보고
콘텐츠를 항상 검토합니다. 여러분의 피드백은 콘텐츠를 개선에 도움이 됩니다.
후속 조치를 위해 이메일을 제공해 주세요
의견을 보내 주셔서 감사드립니다!