Рубрики
Без рубрики

Отправка оптовых SMS с использованием Africas Talking, Python и CSV

Отправка сообщений, использующих Africas Talking API, является относительно простым и простым. В первую очередь благодаря … Помечено с Python, SMS, африканскими, учебником.

Отправка сообщений, использующих 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”