튜토리얼
Visual Basic 개발환경에서 팝빌 SDK를 추가하고, 카카오톡 알림톡 전송 (SendATS) API를 호출하는 기본 과정을 단계별로 따라 해볼 수 있도록 구성된 가이드 입니다.
1. POPBiLL SDK 추가
섹션 제목: “1. POPBiLL SDK 추가”① 팝빌 연동자료실에서 Visual Basic SDK 예제코드 다운로드 후 압축을 해제합니다.
② 압축해제한 SDK 예제 프로젝트의 Linkhub/ Popbill*/ 폴더에 포함된 클래스모듈을 기존 프로젝트의 클래스모듈로 추가합니다.

2. POPBiLL SDK 설정
섹션 제목: “2. POPBiLL SDK 설정”Window 폼 코드에 API Key 와 클래스를 선언하고 Form_Load() 서브모듈에 카카오톡 클래스 초기화 코드를 추가합니다.
① Form API Key, 클래스 객체 선언
Option Explicit
' API Key' - 연동신청 시 발급받은 인증 정보(LinkID, SecretKey로 구성)' • LinkID: 파트너를 식별하기 위한 고유 식별자' • SecretKey: API 인증토큰 발급에 사용되는 키'' TODO: 아래 LinkID, SecretKey를 발급받은 정보로 교체해 주세요.Private Const LinkID = "TESTER"Private Const SecretKey = "SwWxqU+0TErBXy/9TVjIPEnI0VTUMMSQZtJf3Ed8q3I="
' 카카오톡 서비스 객체 선언Private KakaoService As New PBKakaoService② Form_Load() 서브모듈
Private Sub Form_Load()
' 카카오톡 서비스 객체 초기화 KakaoService.Initialize LinkID, SecretKey
' 연동환경(테스트/운영) 설정 ' - 연동환경을 테스트 또는 운영으로 설정합니다. ' • True: 테스트 환경으로 설정 ' • False(default) : 운영 환경으로 설정 ' ' ※ 운영전환 이후부터 IsTest 설정 변경만으로 자유롭게 환경 전환(테스트<->운영)이 가능합니다. KakaoService.IsTest = True
' 인증토큰 IP 일치 검증 사용 여부 ' - 인증토큰을 발급받은 IP와, 그 토큰을 사용하여 API를 호출하는 IP가 같은지를 검사합니다. ' (토큰이 외부로 유출되어도 다른 IP에서는 사용하지 못하도록 막는 보안 장치) ' • True(사용, default) : 두 IP가 일치할 때만 API 호출 허용 ' • False(미사용) : IP 일치 검사를 생략 ' ' ※ False는 토큰 발급 시점의 IP와 API 호출 시점의 IP가 달라질 수 있는 환경에서 사용 ' 예) 오토스케일링, 로드밸런서, NAT 등으로 호출 IP가 유동적인 클라우드 환경 KakaoService.IPRestrictOnOff = True
' 로컬시스템 시간 사용 여부 ' - 현재시각 기준을 설정합니다. ' • True(사용) : 로컬시스템 시간 사용 ' • False(미사용, default) : 팝빌 서버의 시간을 사용 ' ' ※ 현재시각은 주로 인증토큰 발급 및 만료 판단 등에 사용됩니다. ' ※ 이 설정은 홈택스 수집 기간, 세금계산서 작성일자, 발행일자 같은 업무 데이터의 날짜값을 변경하는 옵션이 아닙니다. ' ※ 로컬 서버 시간이 정상 동기화되어 있으면 일반적으로 True를 사용하고 서버 시간 오차로 인증 실패가 의심되거나 ' 서버 시간을 신뢰하기 어려운 환경이면 False를 사용합니다. KakaoService.UseLocalTimeYN = FalseEnd Sub3. SendATS 기능 구현
섹션 제목: “3. SendATS 기능 구현”Form에 버튼을 생성하고 버튼의 Click Event 코드에 카카오톡 알림톡 전송 (SendATS) 함수를 작성합니다.
Private Sub btnSendATS_ONE_Click() Dim templateCode As String Dim snd As String Dim altSendType As String Dim receiptNum As String Dim requestNum As String Dim content As String Dim corpNum As String Dim userID As String Dim reserveDT As String
'팝빌회원 사업자번호 corpNum = "1234567890"
'팝빌회원 아이디 userID = "testkorea"
'알림톡 템플릿코드 - ListATStemplate 함수, GetPlusFriendMgtURL 함수, 또는 팝빌사이트에서 확인 templateCode = "019020000163"
'팝빌에 사전 등록된 발신번호 snd = "07043042992"
'알림톡 내용, 최대 1000자 content = "[ 팝빌 ]" + vbCrLf content = content + "신청하신 #{템플릿코드}에 대한 심사가 완료되어 승인 처리되었습니다." + vbCrLf content = content + "해당 템플릿으로 전송 가능합니다." + vbCrLf + vbCrLf content = content + "문의사항 있으시면 파트너센터로 편하게 연락주시기 바랍니다. " + vbCrLf + vbCrLf content = content + "팝빌 파트너센터 : 1600-8536" + vbCrLf content = content + "support@linkhubcorp.com"
'대체문자 전송유형 (공백-미전송, C-알림톡내용 전송, A-대체문자내용 전송) altSendType = "A"
'카카오톡 전송정보 Dim Messages As New Collection Dim info As New PBKakaoReceiver
info.msg = content '알림톡 내용, 최대 1000자 info.altmsg = "알림톡 대체 문자" '대체문자 내용, 최대 2000byte info.rcv = "010123456" '수신번호 info.rcvnm = "popbill" '수신자명
Messages.Add info
'요청번호, 파트너가 전송요청에 대한 관리번호를 직접 할당하여 관리하는 경우 기재 '최대 36자리, 영문, 숫자, 언더바('_'), 하이픈('-')을 조합하여 사업자별로 중복되지 않도록 구성 requestNum = ""
'예약전송일시 reserveDT = ""
' 알림톡 버튼정보를 템플릿 신청시 기재한 버튼정보와 동일하게 전송하는 경우 btns를 빈 배열로 처리. Dim Buttons As New Collection
' 알림톡 버튼 URL에 #{템플릿변수}를 기재한경우 템플릿변수 값을 변경하여 버튼정보 구성 'Dim btn As PBKakaoButton 'Set btn = New PBKakaoButton
'btn.n = "버튼명" '버튼명 'btn.t = "WL" '버튼유형 DS-배송조회, WL-웹링크, AL-앱링크, MD-메시지전달 BK-봇키워드 'btn.u1 = "https://www.linkhubcorp.com" '앱링크-Android, 웹링크-Mobile 'btn.u2 = "http://www.popbill.com" '앱링크-IOS, 웹링크-PC
'Buttons.Add btn
receiptNum = KakaoService.SendATS(corpNum, templateCode, snd, "", "", altSendType, reserveDT, Messages, userID, requestNum, Buttons)
If receiptNum = "" Then MsgBox ("응답코드 : " + CStr(KakaoService.LastErrCode) + vbCrLf + "응답메시지 : " + KakaoService.LastErrMessage) Exit Sub End If
MsgBox "접수 번호 : " + receiptNum
End Sub4. API 응답결과 확인
섹션 제목: “4. API 응답결과 확인”API 호출 응답결과는 다음과 같습니다.
| 구분 | 응답 |
|---|---|
| 성공 | ReceiptNum(접수번호) : 18자리 문자열 |
| 실패 | code : 오류코드 (8자리 음의 정수) [오류코드] message : 오류메시지 |