Smsdrop-Python

The official python sdk for the smsdrop api.
Quickstart
import datetime
import logging
import time
import pytz
from dotenv import dotenv_values
from smsdrop import Campaign, Client, RedisStorage
logging.basicConfig(level=logging.DEBUG, format="%(message)s")
config = dotenv_values(".env")
TEST_EMAIL = config.get("TEST_EMAIL")
TEST_PASSWORD = config.get("TEST_PASSWORD")
MY_TIMEZONE = config.get("MY_TIMEZONE")
def main():
client = Client(
email=TEST_EMAIL, password=TEST_PASSWORD, storage=RedisStorage()
)
print(client.get_profile())
print(client.get_subscription())
print(client.get_campaigns(skip=0, limit=500))
client.send_message(message="hi", sender="Max", phone="<phone>")
cp = Campaign(
title="Test Campaign",
message="Test campaign content",
sender="TestUser",
recipient_list=["<phone1>", "<phone2>", "<phone3>"],
)
client.launch(cp)
time.sleep(20)
client.refresh(cp)
print(cp.status)
naive_dispatch_date = datetime.datetime.now() + datetime.timedelta(hours=1)
aware_dispatch_date = pytz.timezone(MY_TIMEZONE).localize(
naive_dispatch_date
)
cp2 = Campaign(
title="Test Campaign 2",
message="Test campaign content 2",
sender="TestUser",
recipient_list=["<phone1>", "<phone2>", "<phone3>"],
defer_until=aware_dispatch_date,
)
client.launch(cp2)
cp3 = Campaign(
title="Test Campaign 3",
message="Test campaign content 3",
sender="TestUser",
recipient_list=["<phone1>", "<phone2>", "<phone3>"],
defer_by=120,
)
client.launch(cp3)
time.sleep(120)
client.refresh(cp3)
print(cp3.status)
if __name__ == "__main__":
main()