Отправка сообщений, использующих Africas Talking API, является относительно простым и простым. В первую очередь благодаря их потрясающему Документация и Учебники . Тем не менее, что Если вам пришлось отправить 10 сообщений или 10 000 человек, специально содержащихся в CSV
Недавно мне было предложено помочь SACCO отправлять назовочные сообщения своим членам, чтобы уведомить их о предстоящей встрече. Быстрый поиск Google выявил несколько SMS-провайдеров, но будучи разработчиком, я казался хорошей возможностью использовать одну из любимых платформ Африканский
Подготовка
Чтобы следить с этим постом и последующим кодом, вам понадобится несколько предпосылок:
- Python и Pip (в настоящее время я использую 3.9.2) Любая версия выше 3.5 должна работать.
AfricaS говорят аккаунт Отказ
- API ключ и имя пользователя из вашей учетной записи.
В качестве альтернативы проверьте завершенный код на Гадость Как только вы получили вышеупомянутый сортировку, создайте новый каталог для работы и установить модули, которые нам понадобятся.
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 мы создаем и активируем виртуальную среду для предотвращения загромождения Основная версия системы Python, а также избегает конфликтов версии. Вам не нужно использовать Модуль Venv по умолчанию, Пьенв Большая альтернатива, которую я бы Рекомендовать или Пьенв-победа Для пользователей Windows.
Линия 4 и 5 использует встроенный менеджер пакета Python Package, Pip для установки необходимых модулей. В этом случае это африканский модуль Python SDK и Python-Dotenv, чтобы помочь сохранить Наши учетные данные в отдельном файле по соображениям безопасности. Вы можете сделать дальнейшее чтение О том, как использовать переменные среды в Python.
Для этого использования я использую Python-dotenv
Пакет для хранения учетных данных необходимо пройти аутентификацию с Africal Talking API. Давайте добавим эти учетные данные сейчас. Создайте файл под названием .env
и введите следующие замены заполнителей с учетными данными вашей учетной записи:
# Both can be obtained from your account console on Africas Talking username=Username-here api_key=apikey-here
Закончил со всем этим. Теперь давайте отправим некоторые сообщения!
Сообщения для всех
Создать новый файл, news-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
Код выше импортирует необходимые модули. Извлекает необходимые учетные данные и инициализирует Chilling Client AfricaS.
Теперь мы напишем функцию для анализа 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 для анализа каждой строки. С каждой строки мы получаем значение имени и цифры, используя распаковку списка, это приведет к изменению на основе макета вашего CSV.
Затем мы перейдем к назначению переменных для каждого значения. Inforder Чтобы отправлять сообщения каждому участнику, нам нужно повторить каждый ряд, однако первая строка – это только заголовки столбцов по умолчанию, поэтому нам нужно пропустить их, следовательно, отсюда: Если номер! = "Номер:
Встреча была запланирована в течение 5 дней с текущего дня, используя модуль DateTime, я сделал быстрые расчеты, используя TimeDelta ()
функция. Я мог бы очень записать дату строки, однако я хотел, чтобы этот скрипт был многоразовым и легко сделать модификации? вперед.
Затем мы создаем переменную сообщения для удержания нашего настроенного сообщения. Мы могли бы пойти дальше и отправить его как есть. Однако его не редкость для сообщений потерпеть неудачу из-за различных причин, поэтому я добавил блок попробовать и получать уведомления через терминал и повторить попытку позже.
Уведомления для всех
Теперь мы можем наконец запустить python news-sms-csv.py
и следите за выходом на терминал. Использование комбинированной мощности Africa Asse Talking и Python вы можете легко справиться с отправкой одного или множества сообщений. Позволяя вам увеличить.
Если у вас есть какие-либо вопросы или комментарии. Дайте мне знать в комментариях, или на Твиттер
Оригинал: “https://dev.to/ken_mwaura1/sending-bulk-sms-using-africas-talking-python-and-csv-5bf5”