이 포스팅에서는 PHP로 구현된 알리고(Ailgo) SMS 라이브러리의 사용법을 설명하겠습니다.
알리고 SMS API를 손쉽게 사용하여 다양한 SMS 발송, 예약, 취소 기능을 구현할 수 있습니다.
이 라이브러리는 다중 수신자 발송(Mass SMS), 메시지 상태 조회 등 주요 SMS 관련 기능을 제공하며, 이를 통해 PHP 개발자가 쉽게 통합할 수 있습니다.
1. 클래스 개요
AligoSMS
클래스는 알리고 API를 활용하여 SMS 발송, 대량 SMS 발송, 예약된 메시지 취소, 전송 내역 조회 등의 작업을 수행합니다.
이 클래스는 다음과 같은 주요 기능을 제공합니다:
- 단일/대량 SMS 발송
- 예약된 SMS 취소
- 최근 메시지 내역 조회
- 남은 메시지 건수 조회
- 메시지 상세 내역 조회
클래스 인스턴스화
이 클래스는 다음과 같은 형태로 인스턴스화됩니다.
<?php
require_once 'AligoSMS.php';
$user_id = '사용자의 알리고 계정 아이디';
$key = '발급받은 API 키';
$aligo = new AligoSMS($user_id, $key);
?>
2. 주요 함수와 사용 예제
2.1 sendSMS()
: 단일 메시지 발송
단일 수신자에게 SMS 또는 MMS 메시지를 보낼 때 사용합니다.
사용법
$aligo->sendSMS($message, $receiver, $sender, $subject, $msg_type, $testmode_yn);
매개변수
$message
(문자열): 전송할 메시지 내용$receiver
(문자열): 수신자 전화번호$sender
(문자열): 발신자 전화번호$subject
(문자열, 선택): 메시지 제목 (MMS인 경우 필수)$msg_type
(문자열, 선택): 메시지 유형 (SMS
또는MMS
)$testmode_yn
(문자열, 선택): 테스트 모드 여부 ('Y'
또는'N'
)
예제
$message = '안녕하세요, 알리고 SMS 테스트입니다.';
$receiver = '01012345678';
$sender = '0298765432';
$response = $aligo->sendSMS($message, $receiver, $sender);
print_r($response);
반환 값
- API 응답 데이터를 배열 형태로 반환합니다. 성공/실패 여부 및 상세 정보가 포함됩니다.
2.2 sendMassSMS()
: 대량 메시지 발송
여러 수신자에게 동일하거나 다른 메시지를 보낼 때 사용합니다.
사용법
$aligo->sendMassSMS($sender, $messages, $rdate, $rtime, $msg_type, $testmode_yn);
매개변수
$sender
(문자열): 발신자 전화번호$messages
(배열): 여러 메시지를 포함하는 배열 (각 요소는['receiver' => 수신자, 'message' => 메시지 내용, 'subject' => 제목]
형식)$rdate
,$rtime
(문자열, 선택): 예약 발송 날짜 및 시간$msg_type
(문자열, 선택): 메시지 유형 (SMS
또는MMS
)$testmode_yn
(문자열, 선택): 테스트 모드 여부 ('Y'
또는'N'
)
예제
$sender = '0298765432';
$messages = [
['receiver' => '01011112222', 'message' => '첫 번째 메시지', 'subject' => '제목 1'],
['receiver' => '01033334444', 'message' => '두 번째 메시지', 'subject' => '제목 2'],
];
$response = $aligo->sendMassSMS($sender, $messages);
print_r($response);
반환 값
- 전송 결과가 포함된 배열을 반환합니다. 최대 500명까지 한 번에 전송 가능합니다.
2.3 cancelSMS()
: 예약 메시지 취소
예약된 SMS 발송을 취소할 수 있습니다.
사용법
$aligo->cancelSMS($mid);
매개변수
$mid
(문자열): 메시지 고유 ID (예약 발송시 부여받은 ID)
예제
$mid = '메시지 고유 ID';
$response = $aligo->cancelSMS($mid);
print_r($response);
반환 값
- 취소 요청 결과를 배열로 반환합니다.
2.4 getRecentMessages()
: 최근 메시지 내역 조회
최근 발송된 메시지의 내역을 조회합니다.
사용법
$aligo->getRecentMessages($page, $page_size, $start_date, $limit_day);
매개변수
$page
(정수, 선택): 조회할 페이지 번호 (기본값: 1)$page_size
(정수, 선택): 한 페이지에 표시할 메시지 수 (기본값: 10)$start_date
(문자열, 선택): 조회 시작 날짜 (YYYY-MM-DD
형식)$limit_day
(정수, 선택): 조회 기간 제한 (최대 조회 가능 일수)
예제
$response = $aligo->getRecentMessages(1, 10);
print_r($response);
반환 값
- 최근 발송된 메시지 내역을 배열 형태로 반환합니다.
2.5 getRemainingCount()
: 남은 메시지 건수 조회
현재 계정에 남아있는 메시지 발송 가능 건수를 조회합니다.
사용법
$aligo->getRemainingCount();
예제
$response = $aligo->getRemainingCount();
print_r($response);
반환 값
- 남아있는 건수 정보를 배열 형태로 반환합니다.
2.6 getSMSDetail()
: SMS 상세 내역 조회
특정 메시지의 발송 상세 내역을 조회합니다.
사용법
$aligo->getSMSDetail($mid, $page, $page_size);
매개변수
$mid
(문자열): 메시지 고유 ID$page
,$page_size
(정수, 선택): 조회할 페이지와 페이지 크기
예제
$mid = '메시지 고유 ID';
$response = $aligo->getSMSDetail($mid);
print_r($response);
반환 값
- 메시지의 상세 내역을 배열로 반환합니다.
3. 주의사항 및 테스트 모드
테스트 모드 사용
테스트 모드를 사용하여 실제 메시지를 보내지 않고 API의 기능을 테스트할 수 있습니다. 함수 호출 시 testmode_yn
을 'Y'
로 설정하여 사용합니다. 테스트 모드에서는 실제 메시지가 발송되지 않으며, API 호출의 성공/실패 응답을 테스트할 수 있습니다.
최대 발송 가능 수
- 대량 메시지 발송의 경우 최대 500명까지 한 번에 발송할 수 있습니다. 그 이상의 경우 여러 요청으로 나누어야 합니다.
결론
이 PHP 클래스는 알리고 SMS API를 쉽게 사용할 수 있도록 만들어졌습니다.
위에서 소개한 주요 기능들을 통해 단일/대량 SMS 발송, 예약 취소, 남은 건수 조회 등의 기능을 구현할 수 있습니다.
배포 및 사용시 주의사항을 잘 확인하고, 필요에 따라 테스트 모드를 활용하여 효율적인 메시지 발송 시스템을 구축해 보세요.