파트너 계정 설정

비즈니스용 RCS 파트너로 등록하면 파트너 계정이 생성됩니다. 파트너 계정 설정에 액세스하려면 Business Communications Developer Console을 열고 파트너 계정 설정을 클릭합니다. 여기에서 다음 작업을 할 수 있습니다.

파트너 계정 정보 업데이트

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

필드 설명
파트너 이름 파트너 계정 이름
표시 이름 이름은 운송업체가 수신하는 결제 보고서owner_name 필드로 표시됩니다. 이 정보를 사용하여 이동통신사는 사용자를 신뢰할 수 있는 파트너로 식별하고, 비즈니스용 RCS를 사용하여 구독자에게 도달하는 데 필요한 올바른 인보이스 정보를 생성합니다. 여기에서 제공하는 이름은 이동통신사 메시지 계약에 사용된 이름과 일치해야 합니다.
기술 담당자

에이전트에서 기술적 문제가 발생할 경우 Google에서 연락할 담당자입니다. 다음과 같은 정보를 업데이트할 수 있습니다.

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

브랜드 관리

비즈니스용 RCS 파트너는 브랜드를 대신하여 에이전트를 만들 수 있습니다.

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

브랜드 추가

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

브랜드 수정

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

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

브랜드 삭제

에이전트가 실행되지 않더라도 브랜드가 에이전트와 연결되어 있으면 삭제할 수 없습니다.

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

사용자 관리

계정 설정사용자 페이지에서 파트너 계정의 사용자를 관리합니다. 파트너 계정을 만든 사용자에게는 소유자 역할이 부여됩니다. 신규 사용자에게는 관리자 또는 독자 역할을 부여할 수 있습니다.

  • 관리자는 개발자 콘솔의 모든 기능에 액세스하여 파트너 계정에 속한 모든 상담사를 관리할 수 있습니다.
  • 독자는 개발자 콘솔에 대한 읽기 전용 액세스 권한을 보유하여 파트너 계정에 속한 모든 에이전트를 볼 수 있습니다.

사용자 추가하기

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

새 사용자를 추가하면 파트너 계정에 액세스할 수 있다는 알림 이메일이 전송됩니다.

사용자 삭제

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

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

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

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

사용자의 역할 변경

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

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

API 호출을 인증할 서비스 계정 설정

RBM API를 호출할 때 서비스 계정 키로 호출을 인증합니다. 이 키를 사용하면 브랜드와 에이전트를 만들고 관리할 수 있으며, 에이전트로 메시지와 요청을 보낼 수 있습니다. 서비스 계정은 최대 10개의 키를 가질 수 있습니다.

API 호출을 안전하게 인증하려면 oauth2l 명령줄 도구도 필요합니다.

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

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

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

파트너 웹훅 구성

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

에이전트마다 다른 웹훅을 사용하려면 파트너 웹훅을 재정의하는 에이전트 수준 웹훅을 설정하면 됩니다. 자세한 내용은 에이전트 웹훅 구성을 참고하세요.

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

  1. 비즈니스 커뮤니케이션 개발자 콘솔을 열고 비즈니스용 RCS 파트너 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에서 확인을 클릭합니다. 비즈니스용 RCS에서 웹훅을 확인하면 대화상자가 닫힙니다.

전송 실패를 방지하기 위해 웹훅을 비동기적으로 처리하는 방법에 관한 안내는 메시지 처리를 참고하세요.

수신 메일 확인하기

웹훅은 모든 발신자로부터 메시지를 수신할 수 있으므로 메시지 콘텐츠를 처리하기 전에 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);
  

다음 단계

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