파트너 계정 설정

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

파트너 계정 정보 업데이트

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

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

상담사와 관련하여 기술적 문제가 발생하면 Google에서 연락하는 담당자입니다. 다음을 업데이트할 수 있습니다.

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

브랜드 관리

RBM 파트너는 브랜드를 대신하여 상담사를 만들 수 있습니다.

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

브랜드 추가

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

브랜드 수정하기

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

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

브랜드 삭제

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

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

사용자 관리

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

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

사용자 추가하기

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

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

사용자 삭제

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

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

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

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

사용자의 역할 변경

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

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

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

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

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

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

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

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

파트너 웹훅 구성

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

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

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

  1. Business Communications Developer Console을 열고 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. Developer Console에서 확인을 클릭합니다. RBM에서 웹훅을 확인하면 대화상자가 닫힙니다.

webhook 전송 실패를 처리하고 안정적인 메시지 처리를 보장하려면 메시지 처리를 참고하세요.

수신 메일 확인

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

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

  1. 메시지의 X-Goog-Signature 헤더를 추출합니다. 메시지 본문 페이로드의 해싱된 base64 인코딩 사본입니다.
  2. 요청의 message.body 요소에서 RBM 페이로드를 Base64로 디코딩합니다.
  3. webhook의 클라이언트 토큰 (webhook 설정 시 지정)을 키로 사용하여 base64로 디코딩된 메시지 페이로드의 바이트로 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);
  

다음 단계

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