파트너 계정 설정

RBM 파트너로 등록하면 파트너 계정을 갖게 됩니다. 파트너 계정 설정에 액세스하려면 비즈니스 커뮤니케이션 개발자 콘솔을 열고 파트너 계정 설정을 클릭합니다. 여기에서 다음 작업을 할 수 있습니다.

파트너 계정 정보 업데이트

설정 페이지에서 파트너 ID를 확인하고 다음 정보를 업데이트할 수 있습니다.

필드 설명
파트너 이름 파트너 계정의 이름
표시 이름 이름은 이동통신사가 받는 RBM 결제 보고서owner_name 필드로 표시됩니다. 이동통신사는 이 정보를 사용하여 파트너를 신뢰할 수 있는 파트너로 식별하고 RBM을 사용하여 구독자에게 도달할 수 있도록 올바른 인보이스 정보를 생성합니다. 여기에 입력하는 이름은 이동통신사 메시지 계약에 사용된 이름과 일치해야 합니다.
기술 담당자

에이전트와 관련된 기술적 문제가 있을 때 Google에서 연락할 담당자입니다. 해당 사용자의

  • 이름
  • 회사 이메일 주소
  • 전화번호
웹훅 이 URL이 웹훅 엔드포인트 URL입니다. **구성** 을 클릭하여 업데이트합니다. 파트너 웹훅을 구성하면 모든 에이전트에 적용됩니다. 개별 에이전트에 다른 웹훅을 사용하려면 해당 에이전트에만 적용되는 에이전트 웹훅을 구성할 수 있습니다.

브랜드 관리

RBM 파트너는 브랜드를 대신하여 에이전트를 만들 수 있습니다.

계정 설정브랜드 페이지를 사용하여 파트너 계정과 연결된 브랜드를 추가, 수정, 삭제합니다.

브랜드 추가

브랜드를 추가하려면 입력란에 브랜드 이름을 입력하고 추가를 클릭합니다.

브랜드 수정

브랜드를 수정하려면 다음 단계를 따르세요.

  1. 브랜드 이름 옆의 체크박스를 클릭합니다.
  2. 버튼을 클릭하고 이름 수정을 클릭합니다.
  3. 수정 작업을 완료한 후 완료를 클릭합니다.

브랜드 삭제

브랜드는 에이전트가 출시되지 않았더라도 에이전트와 연결된 경우 삭제할 수 없습니다.

브랜드를 삭제하려면 브랜드 이름 옆의 체크박스를 클릭하고 삭제를 클릭합니다.

사용자 관리

계정 설정사용자 페이지에서는 파트너 계정의 사용자를 관리합니다. 파트너 계정을 만든 사용자는 소유자 역할이 있습니다. 새 사용자는 관리자 또는 리더 역할을 맡을 수 있습니다.

  • 관리자는 Play Console의 모든 기능에 액세스하여 파트너 계정에 속한 모든 에이전트를 관리할 수 있습니다.
  • 리더는 개발자 콘솔에 대한 읽기 전용 액세스 권한을 통해 파트너 계정에 속한 모든 에이전트를 볼 수 있습니다.

사용자 추가하기

사용자를 추가하려면 입력란에 사용자의 이메일 주소를 입력하고 역할을 선택합니다.

새 사용자를 추가하면 해당 사용자에게 파트너 계정에 대한 액세스 권한이 있음을 알리는 이메일이 전송됩니다.

사용자 삭제하기

사용자를 삭제하는 방법은 다음과 같습니다.

  1. 삭제할 사용자를 찾은 후 표 행에서 버튼을 클릭합니다.
  2. 사용자 삭제를 선택합니다.
  3. 삭제를 확인합니다.

삭제된 사용자에게 파트너 계정에 더 이상 액세스할 수 없음을 알리는 이메일이 전송됩니다.

소유자 역할이 있는 사용자는 삭제할 수 없습니다. 소유자를 변경하거나 삭제하려면 지원팀에 문의해야 합니다.

사용자 역할 변경

사용자의 역할을 업데이트하려면 다음 단계를 따르세요.

  1. 업데이트할 사용자를 찾아 표 행에서 버튼을 클릭합니다.
  2. 역할 수정을 선택합니다.
  3. 드롭다운에서 새 역할을 선택합니다.
  4. 저장을 클릭합니다.

API 호출을 인증하도록 서비스 계정 설정

RBM API를 호출할 때 서비스 계정 키로 호출을 인증합니다. 이 키를 사용하면 브랜드와 에이전트를 생성 및 관리하고 에이전트로서 메시지와 요청을 보낼 수 있습니다.

서비스 계정 키를 생성하려면 다음 단계를 따르세요.

  1. 계정 설정에서 서비스 계정 페이지로 이동합니다.
  2. 키 만들기를 클릭한 후 만들기를 클릭합니다. 브라우저에서 서비스 계정 키를 다운로드합니다.

서비스 계정 키를 안전한 비공개 위치에 저장합니다. 키를 공개적으로 공유하지 마세요. 나중에 RBM API에 액세스하려면 이 키가 필요합니다.

파트너 웹훅 구성

웹훅은 파트너가 만든 HTTPS 콜백으로, 에이전트가 메시지 및 이벤트에 응답하는 방법을 지정합니다. 웹훅을 구성한 후에는 메시지 수신이벤트를 시작할 수 있습니다.

파트너 웹훅을 구성하려면 다음 단계를 따르세요.

  1. 비즈니스 커뮤니케이션 개발자 콘솔을 열고 RBM 파트너 Google 계정으로 로그인합니다.

  2. 계정 설정을 엽니다.

  3. RCS Business Messaging 웹훅 URL에서 구성을 클릭합니다.

  4. 웹훅 엔드포인트 URL에 'https://'로 시작하는 웹훅 URL을 입력합니다.

  5. clientToken 값을 기록해 둡니다. 수신되는 메시지가 Google에서 보낸 것인지 확인하는 데 필요합니다.

  6. 지정된 clientToken 매개변수가 있는 POST 요청을 수락하도록 웹훅을 구성하고 secret 매개변수의 일반 텍스트 값을 응답 본문으로 사용하여 200 OK 응답을 전송합니다.

    예를 들어 웹훅이 다음 본문 콘텐츠가 포함된 POST 요청을 수신하는 경우

    {
      "clientToken":"SJENCPGJESMGUFPY",
      "secret":"1234567890"
    }
    

    그러면 웹훅에서 clientToken 값을 확인하고, clientToken가 올바르면 응답 본문으로 1234567890를 사용하여 200 OK 응답을 반환합니다.

    // clientToken from Configure
    const myClientToken = "SJENCPGJESMGUFPY";
    
    // Example endpoint
    app.post("/rbm-webhook", (req, res) => {
      const msg = req.body;
      if (msg.clientToken === myClientToken) {
          res.status(200).send(msg.secret);
          return;
      }
      res.send(400);
    });
    
  7. Play Console에서 확인을 클릭합니다. RBM에서 웹훅을 확인하면 대화상자가 닫힙니다.

수신 메일 확인

웹훅은 모든 발신자로부터 메시지를 수신할 수 있으므로 메시지 콘텐츠를 처리하기 전에 Google이 수신 메시지를 보냈는지 확인해야 합니다.

Google에서 수신한 메시지를 보냈는지 확인하려면 다음 단계를 따르세요.

  1. 메일의 X-Goog-Signature 헤더를 추출합니다. 메시지 본문 페이로드의 해시 및 base64 인코딩 사본입니다.
  2. 요청의 message.body 요소에서 RBM 페이로드를 Base-64로 디코딩합니다.
  3. 웹훅의 클라이언트 토큰 (웹훅을 설정할 때 지정)을 키로 사용하여 base-64로 디코딩된 메시지 페이로드 바이트의 SHA512 HMAC를 만들고 결과를 base64로 인코딩합니다.
  4. X-Goog-Signature 해시를 직접 만든 해시와 비교합니다.
    • 해시가 일치하면 Google에서 메시지를 보낸 것입니다.
    • 해시가 일치하지 않으면 정상으로 알려진 메시지의 해싱 프로세스를 확인합니다.

      해싱 프로세스가 올바르게 작동하고 있고 허위로 메시지가 전송되었다고 확신하는 메시지를 받으면 Google에 문의하세요.

Node.js

  if ((requestBody.hasOwnProperty('message')) && (requestBody.message.hasOwnProperty('data'))) {
    // Validate the received hash to ensure the message came from Google RBM
    let userEventString = Buffer.from(requestBody.message.data, 'base64');
    let hmac = crypto.createHmac('sha512', CLIENT_TOKEN);
    let data = hmac.update(userEventString);
    let genHash = data.digest('base64');
    let headerHash = req.header('X-Goog-Signature');

    if (headerHash === genHash) {
      let userEvent = JSON.parse(userEventString);

      console.log('userEventString: ' + userEventString);
      handleMessage(userEvent);
    } else {
      console.log('hash mismatch - ignoring message');
    }
  }

  res.sendStatus(200);
  

다음 단계

파트너 계정이 설정되었으므로 이제 첫 번째 에이전트를 빌드할 수 있습니다.