Africas Talking, Python 및 CSV를 사용하여 대량 SMS 보내기
9966 단어 africastalkingsmspythontutorial
그러나 CSV에 구체적으로 포함된 10개의 메시지 또는 10,000명의 사람들을 보내야 한다면 어떻게 될까요?
최근에 저는 Sacco가 회원들에게 다가오는 회의를 알리기 위해 대량 메시지를 보내는 것을 도와 달라는 요청을 받았습니다.
빠른 Google 검색을 통해 몇 가지 SMS 제공업체가 드러났지만 개발자인 저는 좋아하는 플랫폼 중 하나를 사용할 수 있는 좋은 기회인 것 같았습니다Africastalking.
준비
이 게시물과 후속 코드를 따르려면 몇 가지 전제 조건이 필요합니다.
또는 Github에서 완료된 코드를 확인하십시오.
위의 내용을 정렬했으면 작업할 새 디렉토리를 만들고 필요한 모듈을 설치합니다.
mkdir at-project
cd at-project
python -m venv .
source bin/activate
pip install africastalking python-dotenv
pip freeze > requirements.txt
위의 코드를 분석하겠습니다. 1행과 2행은 작업 디렉토리를 만들고 디렉토리로 변경합니다.
모범 사례에 따라 3행과 4행에서 혼란을 방지하기 위해 가상 환경을 만들고 활성화합니다.
메인 파이썬 시스템 버전도 버전 충돌을 피합니다. 당신은 사용할 필요가 없습니다
기본 venv 모듈pyenv은 훌륭한 대안입니다.
Windows 사용자의 경우 또는 pyenv-win을 권장합니다.
4행과 5행은 내장 Python 패키지 관리자인 pip를 사용하여 필요한 모듈을 설치합니다.
이 경우 africastalking python sdk 및 python-dotenv 모듈이 유지를 돕습니다.
보안상의 이유로 별도의 파일에 자격 증명이 있습니다. 당신은 할 수 있습니다 further reading
파이썬에서 환경 변수를 사용하는 방법.
이 사용 사례에서는
python-dotenv
패키지를 사용하여 자격 증명을 저장합니다.Africas Talking API로 인증하는 데 필요합니다. 이제 해당 자격 증명을 추가하겠습니다.
.env
라는 파일을 만들고 자리 표시자를 계정 자격 증명으로 대체하여 다음을 입력합니다.# Both can be obtained from your account console on Africas Talking
username=Username-here
api_key=apikey-here
모든 것을 마쳤습니다. 이제 메시지를 보내봅시다!
모두를 위한 메시지
새 파일
multiple-sms-csv.py
을 만듭니다. 다음을 추가하십시오# multiple-sms-csv.py
import os
import datetime
import csv
import africastalking as at
from dotenv import load_dotenv
# the load_dotenv function gets the environment variables defined in .env file
load_dotenv()
# assigns the variables to the environment variables
api_key = os.getenv("api_key")
username = os.getenv("username")
# Initialize the Africas Talking client with the required credentials
at.initialize(username, api_key)
# assign the sms functionality to a variable
sms = at.SMS
위의 코드는 필요한 모듈을 가져옵니다. 필요한 자격 증명을 검색하고 Africas Talking 클라이언트를 초기화합니다.
이제 csv를 구문 분석하고 숫자와 선택적으로 이름을 가져오는 함수를 작성합니다.
메시지를 보내려는 번호가 있는 csv가 작업 디렉토리에 있는지 확인하십시오.
# multiple-sms-csv.py
# create a function to parse the CSV and send a customized message
def send_messages():
# parse the provided CSV with the inbuilt csv library
with open('sample.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
name = row[1]
number = row[2]
if number != "Number":
print(name, number)
# Get the current date and time
local_time = datetime.datetime.now()
date_difference = datetime.timedelta(days=5)
meeting_date = local_time + date_difference
# create a customized message with the required meeting date
message = f"Hello {name}, this message sent to inform you of a meeting scheduled on {meeting_date}"
# For each entry send a customized message
try:
response = sms.send(message, [number])
print(response)
except Exception as e:
print(f'Uh oh we have a problem: {e}')
else:
print("Not a valid number")
send_messages()
위의 코드는 함수
send_messages()
를 생성합니다. 함수 내에서 csv를 열고 inbult csv 모듈의 reader()
함수를 사용하여 각 행을 구문 분석합니다. 각 행에서 목록 압축 해제를 사용하여 이름과 숫자의 값을 얻습니다. 이것은 물론 csv의 레이아웃에 따라 변경됩니다.그런 다음 각 값에 변수를 할당합니다. 각 구성원에게 메시지를 보내려면 각 행을 반복해야 하지만 첫 번째 행은 기본 열 헤더이므로 건너뛰어야 합니다.
if number != "Number:
회의는 당일부터 5일로 예정되어 있었고, datetime 모듈을 이용하여
timedelta()
함수를 이용하여 빠른 계산을 해보았습니다. 물론 날짜를 문자열로 하드 코딩할 수도 있었지만 이 스크립트를 재사용할 수 있고 쉽게 수정할 수 있기를 원했습니다.앞으로.
그런 다음 사용자 지정 메시지를 보관할 메시지 변수를 만듭니다. 그대로 보낼 수 있습니다. 그러나 다양한 이유로 인해 메시지가 실패하는 것은 드문 일이 아니므로 시도 블록을 추가하고 터미널을 통해 알림을 받고 나중에 다시 시도합니다.
모두를 위한 알림
이제 마지막으로
python multiple-sms-csv.py
를 실행하고 터미널에서 출력을 볼 수 있습니다. Africas Talking과 Python의 결합된 기능을 사용하여 하나, 몇 개 또는 많은 메시지를 보내는 것을 쉽게 처리할 수 있습니다. 확장할 수 있습니다.질문이나 의견이 있으시면. 댓글로 알려주세요,
또는
Reference
이 문제에 관하여(Africas Talking, Python 및 CSV를 사용하여 대량 SMS 보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ken_mwaura1/sending-bulk-sms-using-africas-talking-python-and-csv-5bf5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)