본문으로 건너뛰기

메시지 발송 예제

해당 페이지에서는 SOLAPI Python SDK를 이용하여 메시지를 발송하는 방법에 대해 가이드하고 있습니다.
Python SDK를 통해 빠르고 쉽게 메시지를 발송해보세요!

정보
  • 각 발송 예시에 대한 결과 값 표시 기능은 현재 준비중에 있습니다.
  • 해당 예제는 Python SDK 5.0.1 버전을 기준으로 작성되었습니다.
  • 여러 건 발송이나 더 다양한 예제를 확인해보고 싶으신 경우 SDK 샘플 코드 페이지를 확인해보세요!
위험
  • 발송 요청을 하실 때 반드시 발신번호와 수신번호는 01012345678 형식으로 요청하셔야 합니다!
  • +, -, * 특수문자 등 삽입 불가
// 예시, 다른 파라미터 생략, json 형식
{
"from": "029302266",
"to": "029302266"
}

🔗 SDK 샘플 코드 페이지

환경설정

터미널에서 연동할 프로젝트의 폴더로 이동하신 다음 아래와 같은 명령어를 입력하여 SDK를 설치해보세요!

pip install 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)}")