콘텐츠로 이동

메시지 API 호환성

SMSBAT는 Messagio API와의 호환성 레이어를 지원합니다. 이를 통해 페이로드 구조를 다시 작성하거나 통합 논리를 변경할 필요 없이 Messagio용으로 설계된 기존 Viber 통합을 SMSBAT로 직접 마이그레이션할 수 있습니다.


연결 설정

SMSBAT를 통해 요청을 라우팅하려면 통합에서 기본 URL과 인증 자격 증명을 업데이트하세요.

  • 기본 URL: https://restapi.smsbat.com
  • 끝점: POST /api/SendMessage
  • 요청 형식: application/x-www-form-urlencoded(양식 데이터)

인증 및 자격 증명

요청은 요청 본문 양식 데이터 내에서 직접 전송된 매개변수를 사용하여 인증됩니다.

매개변수 유형 필수 설명
사용자 문자열 SMSBAT 계정 로그인 또는 사용자 식별자입니다.
표시 문자열 발신자 이름으로 등록된 API 비밀번호 또는 서명입니다.
'에서' 문자열 등록된 발신자 알파 이름입니다.
보내는_방법 문자열 채널 유형. 일반 Viber Business 메시지에는 viber를 사용하고 Viber OTP 템플릿에는 viber_otp를 사용하세요.
'전화' 문자열 국제 형식의 수신자 전화번호입니다(예: '380501234567').

Viber 메시지 유형

다양한 Viber 메시지 구조에 대한 특정 매개변수와 요청 페이로드를 보려면 아래 탭을 선택하세요.

간단한 문자 메시지를 보냅니다.

추가 매개변수:

매개변수 유형 필수 설명
txt 문자열 메시지 텍스트.

요청 페이로드 예시:

POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded

sending_method=viber&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&txt=Hello+from+SMSBAT%21

대화형 클릭 유도 버튼이 포함된 문자 메시지를 보냅니다.

추가 매개변수:

매개변수 유형 필수 설명
txt 문자열 메시지 텍스트.
버튼_텍스트 문자열 버튼에 표시되는 텍스트입니다.
버튼_링크 문자열 버튼 클릭 시 도착 URL입니다.

요청 페이로드 예시:

POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded

sending_method=viber&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&txt=Check+our+latest+offers%21&button_text=Open&button_link=https%3A%2F%2Fwww.example.com

공개 이미지 파일을 보냅니다.

추가 매개변수:

매개변수 유형 필수 설명
이미지_링크 문자열 이미지의 공개 HTTPS URL입니다.
txt 문자열 아니요 이미지 아래에 표시할 선택적 캡션 텍스트입니다.

요청 페이로드 예시:

POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded

sending_method=viber&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&image_link=https%3A%2F%2Fwww.example.com%2Fimage.png

텍스트, 이미지, 버튼이 포함된 리치 카드를 보냅니다.

추가 매개변수:

매개변수 유형 필수 설명
txt 문자열 캡션 텍스트.
이미지_링크 문자열 이미지의 공개 HTTPS URL입니다.
버튼_텍스트 문자열 버튼에 표시되는 텍스트입니다.
버튼_링크 문자열 버튼 클릭 시 도착 URL입니다.

요청 페이로드 예시:

POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded

sending_method=viber&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&txt=Hot+deals+inside%21&image_link=https%3A%2F%2Fwww.example.com%2Fimage.png&button_text=Open&button_link=https%3A%2F%2Fwww.example.com

선택적 텍스트 캡션 및 작업 버튼이 포함된 비디오 파일을 보냅니다.

추가 매개변수:

매개변수 유형 필수 설명
video.url 문자열 비디오 파일의 공개 HTTPS URL입니다.
video.thumbnail 문자열 비디오 미리보기 이미지의 공개 HTTPS URL입니다.
video.size_mb 정수 메가바이트 단위의 대략적인 비디오 파일 크기입니다.
video.duration_sec 정수 비디오 재생 시간(초)입니다.
txt 문자열 아니요 선택적 설명 텍스트입니다.
버튼_텍스트 문자열 아니요 선택적 버튼 텍스트(캡션이나 링크 역할을 할 수 있음)
버튼_링크 문자열 아니요 선택적 버튼 링크 URL.

요청 페이로드 예시:

POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded

sending_method=viber&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&txt=Watch+this+tutorial%21&video.url=https%3A%2F%2Fwww.example.com%2Fvideo.mp4&video.thumbnail=https%3A%2F%2Fwww.example.com%2Fvideo-thumbnail.png&video.size_mb=1&video.duration_sec=3&button_text=Open&button_link=https%3A%2F%2Fwww.example.com

사전 승인된 템플릿을 사용하여 Viber 일회용 비밀번호(OTP)를 보냅니다.

참고

OTP 메시지를 보낼 때 'sending_method'를 'viber_otp'로 설정해야 합니다.

추가 매개변수:

| 매개변수 | 유형 | 필수 | 설명 |
| :--- | :--- | :--- | :--- |
| `template.id` | 문자열 | **예** | 사전 승인된 Viber OTP 템플릿 ID입니다. |
| `template.lang` | 문자열 | **예** | 템플릿 언어 코드(예: `en`, `uk`) |
| `template.params.pin` | 문자열 | **예** | 템플릿에 삽입할 OTP 핀 값입니다. |
| `template.params.business_platform_name` | 문자열 | **예** | 템플릿의 업체 이름 자리 표시자입니다. |
| `template.params.code_validity_time` | 문자열 | **예** | PIN 유효 기간(분)입니다. |

**요청 페이로드 예시:**
```http
POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded

sending_method=viber_otp&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&template.id=otp_template_123&template.lang=en&template.params.pin=123456&template.params.business_platform_name=SMSBAT&template.params.code_validity_time=7
```

사용자가 스와이프할 수 있는 여러 슬라이드(카드)가 포함된 대화형 메시지 카드를 보냅니다.

추가 매개변수:

매개변수 유형 필수 설명
txt 문자열 캐러셀의 제목 텍스트입니다.
회전목마[N].제목 문자열 카드 제목 'N'(0부터 시작).
회전목마[N].image_url 문자열 'N' 카드의 공개 HTTPS 이미지 URL입니다.
carousel[N].primary_label 문자열 카드 'N'의 메인 버튼 캡션입니다.
carousel[N].primary_url 문자열 'N' 카드의 메인 버튼 링크 URL입니다.
carousel[N].secondary_label 문자열 아니요 카드 'N'의 보조 버튼 캡션입니다.
carousel[N].secondary_url 문자열 아니요 'N' 카드의 보조 버튼 링크 URL입니다.

요청 페이로드 예시:

POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded

sending_method=viber&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&txt=Top+picks+for+you&carousel%5B0%5D.title=First+Offer&carousel%5B0%5D.image_url=https%3A%2F%2Fwww.example.com%2Fitem-1.png&carousel%5B0%5D.primary_label=Open&carousel%5B0%5D.primary_url=https%3A%2F%2Fwww.example.com%2Fitem-1&carousel%5B0%5D.secondary_label=Details&carousel%5B0%5D.secondary_url=https%3A%2F%2Fwww.example.com%2Fitem-1%2Fdetails&carousel%5B1%5D.title=Second+Offer&carousel%5B1%5D.image_url=https%3A%2F%2Fwww.example.com%2Fitem-2.png&carousel%5B1%5D.primary_label=Open&carousel%5B1%5D.primary_url=https%3A%2F%2Fwww.example.com%2Fitem-2

대화형 설문조사 또는 설문조사 질문이 포함된 메시지를 보냅니다.

추가 매개변수:

매개변수 유형 필수 설명
txt 문자열 설문조사 질문 텍스트입니다.
설문조사_옵션[N] 문자열 'N' 항목에 대한 설문조사 옵션 텍스트(0부터 시작하는 색인) 옵션이 2개 이상 필요합니다.
옵션_유형 정수 선택기 유형: '1'(라디오 버튼) 또는 '2'(일반 버튼).

요청 페이로드 예시:

POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded

sending_method=viber&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&txt=Please+rate+our+service&survey_options%5B0%5D=Excellent&survey_options%5B1%5D=Good&survey_options%5B2%5D=Average&option_type=1


응답 형식

Messagio API 호환성 끝점은 'HTTP 200 OK' 상태 코드와 함께 XML 형식으로 응답을 반환합니다.

수락됨(성공) 응답

<response>
  <code>0</code>
  <tech_message>OK</tech_message>
  <msg_id phone="380501234567">MESSAGE_GUID</msg_id>
</response>

오류 응답

요청 매개변수 검증이 실패하거나 인증이 실패하면 응답은 0이 아닌 코드를 반환합니다.

<response>
  <code>-1</code>
  <tech_message>PARAM ERROR (sign)</tech_message>
</response>
<response>
  <code>-2</code>
  <tech_message>ERROR(unauthorized)</tech_message>
</response>

콜백

콜백 URL은 플랫폼에서 구현되고 호스팅되어야 합니다. SMSBAT는 배달 이벤트, 설문 조사 응답 및 사용자 응답과 관련하여 시스템을 업데이트하기 위해 HTTP 콜백을 보냅니다.

1. 배송 상태 콜백

메시지가 상태(전송됨, 읽음, 실패)로 전환될 때 전송됩니다.

  • 콘텐츠 유형: application/x-www-form-urlencoded
  • 방법: POST

요청 페이로드 형식:

  • 배달됨:
    msg_id=MESSAGE_GUID&status=delivered
    
  • 본/읽은 내용:
    msg_id=MESSAGE_GUID&status=delivered&type=seen
    
  • 배달되지 않음/실패:
    msg_id=MESSAGE_GUID&status=undelivered&status_extended=REASON
    

필드 설명:

  • msg_id: SendMessage 응답에 반환된 SMSBAT 고유 메시지 ID(GUID)입니다.
  • 상태: 배송 결과(배달됨, 배달되지 않음 또는 상태 알 수 없음)입니다.
  • type: 수신자가 메시지를 본 경우 seen으로 설정됩니다.
  • status_extended: 전달되지 않은 상태에 대한 구체적인 기술적 이유(예: VIBER_EXPIRED, VIBER_BLOCKED_BY_USER, VIBER_USER_NOT_FOUND, VIBER_NO_DEVICE).

2. 설문조사 응답 콜백

사용자가 Viber 설문조사 메시지에서 응답 옵션을 선택할 때 트리거됩니다.

  • 콘텐츠 유형: application/x-www-form-urlencoded
  • 방법: POST

요청 페이로드 형식:

msg_id=ORIGINAL_SURVEY_MESSAGE_GUID&text=SELECTED_OPTION_TEXT


3. 인바운드 사용자 메시지 콜백

사용자가 Viber 비즈니스 서비스에 문자 또는 미디어 응답을 보낼 때 트리거됩니다.

  • 콘텐츠 유형: application/json
  • 방법: POST

요청 페이로드 형식:

{
  "msg_id": "INBOUND_MESSAGE_GUID",
  "text": "Hello, I have a question",
  "media": "https://example.com/user-attachment.png",
  "phone": "380501234567",
  "sender_bm_id": "12345"
}

필드 설명:

  • msg_id: 인바운드 응답을 위해 생성된 고유 메시지 ID입니다.
  • text: 사용자가 보낸 텍스트 콘텐츠(미디어만 보낸 경우 null일 수 있음)
  • 미디어: 사용자가 보낸 미디어 첨부 파일을 다운로드하기 위한 직접 URL(텍스트만 있는 경우 null일 수 있음)
  • phone: 국제 형식으로 된 발신자의 전화번호입니다.
  • sender_bm_id: Viber Business 발신자 ID입니다.