메시지 발송 예제
해당 페이지에서는 SOLAPI Python SDK를 이용하여 메시지를 발송하는 방법에 대해 가이드하고 있습니다.
Python SDK를 통해 빠르고 쉽게 메시지를 발송해보세요!
정보
- 각 발송 예시에 대한 결과 값 표시 기능은 현재 준비중에 있습니다.
- 해당 예제는 Python SDK 5.0.1 버전을 기준으로 작성되었습니다.
- 여러 건 발송이나 더 다양한 예제를 확인해보고 싶으신 경우 SDK 샘플 코드 페이지를 확인해보세요!
위험
- 발송 요청을 하실 때 반드시 발신번호와 수신번호는 01012345678 형식으로 요청하셔야 합니다!
- +, -, * 특수문자 등 삽입 불가
// 예시, 다른 파라미터 생략, json 형식
{
"from": "029302266",
"to": "029302266"
}
🔗 SDK 샘플 코드 페이지
환경설정
터미널에서 연동할 프로젝트의 폴더로 이동하신 다음 아래와 같은 명령어를 입력하여 SDK를 설치해보세요!
- PIP
- UV
pip install solapi
uv add solapi
문자 발송
Python으로 문자를 발송하는 방법에 대해 안내합니다.
연동하실 코드로 이동하신 다음, 아래의 각 유형별 문자 발송예시를 참고하셔서 원하시는 유형의 문자를 발송해보세요!
단문 문자(SMS) 발송
from solapi import SolapiMessageService
from solapi.model import RequestMessage
# API 키와 API Secret을 설정합니다
message_service = SolapiMessageService(
api_key="YOUR_API_KEY", api_secret="YOUR_API_SECRET"
)
# 단일 메시지 모델을 생성합니다
message = RequestMessage(
from_="발신번호", # 발신번호 (등록된 발신번호만 사용 가능, 01000000000 형식으로 입력해주셔야 합니다! (-)제외)
to="수신번호", # 수신번호(01000000000 형식으로 입력해주셔야 합니다! (-)제외)
text="안녕하세요! SOLAPI Python SDK를 사용한 SMS 발송 예제입니다.",
)
# 메시지를 발송합니다
try:
response = message_service.send(message)
print("메시지 발송 성공!")
print(f"Group ID: {response.group_info.group_id}")
print(f"요청한 메시지 개수: {response.group_info.count.total}")
print(f"성공한 메시지 개수: {response.group_info.count.registered_success}")
print(f"실패한 메시지 개수: {response.group_info.count.registered_failed}")
except Exception as e:
print(f"메시지 발송 실패: {str(e)}")
장문 문자(LMS) 발송
from solapi import SolapiMessageService
from solapi.model import RequestMessage
# API 키와 API Secret을 설정합니다
message_service = SolapiMessageService(
api_key="YOUR_API_KEY", api_secret="YOUR_API_SECRET"
)
# 단일 메시지 모델을 생성합니다
message = RequestMessage(
from_="발신번호", # 발신번호 (등록된 발신번호만 사용 가능, 01000000000 형식으로 입력해주셔야 합니다! (-)제외)
to="수신번호", # 수신번호(01000000000 형식으로 입력해주셔야 합니다! (-)제외)
text="한글 45자, 영자 90자 이상 입력되면 자동으로 LMS타입의 문자메시지가 발송됩니다. 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ",
)
# 메시지를 발송합니다
try:
response = message_service.send(message)
print("메시지 발송 성공!")
print(f"Group ID: {response.group_info.group_id}")
print(f"요청한 메시지 개수: {response.group_info.count.total}")
print(f"성공한 메시지 개수: {response.group_info.count.registered_success}")
print(f"실패한 메시지 개수: {response.group_info.count.registered_failed}")
except Exception as e:
print(f"메시지 발송 실패: {str(e)}")
사진 문자(MMS) 발송
from os.path import abspath
from solapi import SolapiMessageService
from solapi.model import RequestMessage
from solapi.model.request.storage import FileTypeEnum
# API 키와 API Secret을 설정합니다
message_service = SolapiMessageService(
api_key="YOUR_API_KEY", api_secret="YOUR_API_SECRET"
)
# 이미지 파일을 업로드합니다
try:
# 이미지 파일 업로드 (MMS 타입으로 지정)
file_response = message_service.upload_file(
file_path=abspath(
"../images/example.jpg"
), # 실제 이미지 파일 경로로 변경해주세요
upload_type=FileTypeEnum.MMS,
)
print("파일 업로드 성공!")
print(f"File ID: {file_response.file_id}")
# MMS 메시지를 생성하고 발송합니다
message = RequestMessage(
from_="발신번호", # 발신번호 (등록된 발신번호만 사용 가능)
to="수신번호", # 수신번호
# subject="MMS 제목", # MMS 제목, 제목을 지정하지 않는다면 필요하지 않습니다.
text="MMS 메시지 내용입니다.",
image_id=file_response.file_id, # 업로드된 파일의 ID를 지정
)
# 메시지를 발송합니다
response = message_service.send(message)
print("\nMMS 발송 성공!")
print(f"Group ID: {response.group_info.group_id}")
print(f"요청한 메시지 개수: {response.group_info.count.total}")
print(f"성공한 메시지 개수: {response.group_info.count.registered_success}")
except Exception as e:
print(f"MMS 발송 실패: {str(e)}")
해외 문자(SMS 전용) 발송
from solapi import SolapiMessageService
from solapi.model import RequestMessage
# API 키와 API Secret을 설정합니다
message_service = SolapiMessageService(
api_key="YOUR_API_KEY", api_secret="YOUR_API_SECRET"
)
# 단일 메시지 모델을 생성합니다
message = RequestMessage(
from_="발신번호", # 발신번호 (등록된 발신번호만 사용 가능, 01000000000 형식으로 입력해주셔야 합니다! (-)제외)
to="수신번호", # 수신번호(01000000000 형식으로 입력해주셔야 합니다! (-)제외)
text="안녕하세요! SOLAPI Python SDK를 사용한 SMS 발송 예제입니다.",
country="1" # 실제 국가번호 입력, 현재 입력된 값은 미국, 한국은 82 입니다.
)
# 메시지를 발송합니다
try:
response = message_service.send(message)
print("메시지 발송 성공!")
print(f"Group ID: {response.group_info.group_id}")
print(f"요청한 메시지 개수: {response.group_info.count.total}")
print(f"성공한 메시지 개수: {response.group_info.count.registered_success}")
print(f"실패한 메시지 개수: {response.group_info.count.registered_failed}")
except Exception as e:
print(f"메시지 발송 실패: {str(e)}")
카카오 알림톡/친구톡 발송
Python으로 알림톡/친구톡을 발송하는 방법에 대해 안내합니다.
연동하실 코드로 이동하신 다음, 아래의 각 유형별 문자 발송예시를 참고하셔서 원하시는 유형의 알림톡/친구톡을 발송해보세요!
알림톡 발송
주의
알림톡 발송은 text 파라미터를 기입하면 발송에 실패합니다!
from solapi import SolapiMessageService
from solapi.model import RequestMessage
from solapi.model.kakao.kakao_option import KakaoOption
# API 키와 API Secret을 설정합니다
message_service = SolapiMessageService(
api_key="YOUR_API_KEY", api_secret="YOUR_API_SECRET"
)
# 카카오 알림톡 발송을 위한 옵션을 생성합니다.
kakao_option = KakaoOption(
pf_id="계정에 등록된 카카오 비즈니스 채널ID",
template_id="계정에 등록된 카카오 알림톡 템플릿 ID",
# 만약에 템플릿에 변수가 있다면 아래와 같이 설정합니다.
# 값은 반드시 문자열로 넣어주셔야 합니다!
# variables={
# "#{name}": "홍길동",
# "#{age}": "30"
# }
)
# 단일 메시지를 생성합니다
message = RequestMessage(
from_="발신번호", # 발신번호 (등록된 발신번호만 사용 가능)
to="수신번호", # 수신번호
kakao_options=kakao_option,
)
# 메시지를 발송합니다
try:
response = message_service.send(message)
print("메시지 발송 성공!")
print(f"Group ID: {response.group_info.group_id}")
print(f"요청한 메시지 개수: {response.group_info.count.total}")
print(f"성공한 메시지 개수: {response.group_info.count.registered}")
except Exception as e:
print(f"메시지 발송 실패: {str(e)}")
카카오톡 해외 번호 가입자에 대한 알림톡 발송방법
from solapi import SolapiMessageService
from solapi.model import RequestMessage
from solapi.model.kakao.kakao_option import KakaoOption
# API 키와 API Secret을 설정합니다
message_service = SolapiMessageService(
api_key="YOUR_API_KEY", api_secret="YOUR_API_SECRET"
)
# 카카오 알림톡 발송을 위한 옵션을 생성합니다.
kakao_option = KakaoOption(
pf_id="계정에 등록된 카카오 비즈니스 채널ID",
template_id="계정에 등록된 카카오 알림톡 템플릿 ID",
# 만약에 템플릿에 변수가 있다면 아래와 같이 설정합니다.
# 값은 반드시 문자열로 넣어주셔야 합니다!
# variables={
# "#{name}": "홍길동",
# "#{age}": "30"
# }
)
# 단일 메시지를 생성합니다
message = RequestMessage(
from_="발신번호", # 발신번호 (등록된 발신번호만 사용 가능)
to="수신번호", # 수신번호
kakao_options=kakao_option,
country="1" # 실제 수신자의 국가번호를 입력해주세요! 미국은 1, 대한민국은 82입니다.
)
# 메시지를 발송합니다
try:
response = message_service.send(message)
print("메시지 발송 성공!")
print(f"Group ID: {response.group_info.group_id}")
print(f"요청한 메시지 개수: {response.group_info.count.total}")
print(f"성공한 메시지 개수: {response.group_info.count.registered}")
except Exception as e:
print(f"메시지 발송 실패: {str(e)}")
친구톡 발송
파이썬 SDK에 대한 친구톡 예제는 준비중입니다!
빠른 시일내에 추가될 수 있도록 노력하겠습니다!
예약 발송
예약 발송은 모든 발송 수단(문자, 알림톡 등)에서 사용할 수 있는 기능입니다.
예약 발송은 SendRequestConfig를 통해 scheduledDate에 str 값 혹은 datetime 값을 넣으면 예약발송이 진행됩니다!
주의
예약 날짜가 현재 시각보다 더 과거의 시간일 경우 즉시 발송 접수가 진행됩니다.
발송 예시
발송 예시는 SMS(단문 문자)만 제공되지만, 모든 발송 수단에서 사용할 수 있습니다!
from datetime import datetime
from solapi import SolapiMessageService
from solapi.model import RequestMessage, SendRequestConfig
# API 키와 API Secret을 설정합니다
message_service = SolapiMessageService(
api_key="YOUR_API_KEY", api_secret="YOUR_API_SECRET"
)
# 단일 메시지를 생성합니다
message = RequestMessage(
from_="발신번호", # 발신번호 (등록된 발신번호만 사용 가능)
to="수신번호", # 수신번호
text="안녕하세요! SOLAPI Python SDK를 사용한 SMS 발송 예제입니다.",
)
# 예약 발송을 위한 설정을 추가합니다
request_config = SendRequestConfig(scheduled_date=datetime(2025, 5, 15, 13, 0, 0))
# 혹은..
# request_config = SendRequestConfig(scheduled_date="2025-05-15 13:00:00")
# 메시지를 발송합니다
try:
response = message_service.send(message, request_config)
print("메시지 발송 성공!")
print(f"Group ID: {response.group_info.group_id}")
print(f"요청한 메시지 개수: {response.group_info.count.total}")
print(f"성공한 메시지 개수: {response.group_info.count.registered_success}")
print(f"실패한 메시지 개수: {response.group_info.count.registered_failed}")
except Exception as e:
print(f"메시지 발송 실패: {str(e)}")