pythonapisms

Error in Sending Automated SMS with Dialpad and CVS File


I'm using python to send automated sms messages via Dialpad using the contacts I have in my CVS file (it's formatted as NAME, PHONENUMBER).

However I keep getting this error - example names and numbers used here:

Error sending SMS to Bob (+16124855917): b'Not Found'
Error sending SMS to Larry (+17699643423): b'Not Found'
Error sending SMS to Harry (+12538355287): b'Not Found'
Error sending SMS to Barry (+16128562388): b'Not Found'
Error sending SMS to Gary (+12129748516): b'Not Found'

The python code:

    import csv
    import requests

    DIALPAD_API_KEY = 'MY-API-KEY'
    DIALPAD_PHONE_NUMBER = 'MY-PHONE-NUMBER'

    def send_sms_message(name, phone_number):
        if not phone_number.startswith('+'):
            phone_number = f'+1{phone_number}'
        url = 'https://dialpad.com/api/v2/sms_messages'
        headers = {
            'Content-Type': 'application/json',
            'Authorization': f'Bearer {DIALPAD_API_KEY}'
        }
        data = {
            'from_number': DIALPAD_PHONE_NUMBER,
            'to_number': phone_number,
            'text': f'Is this {name}? I want to make sure I have the right number.'
        }
        response = requests.post(url, headers=headers, json=data)
        if response.status_code == 200:
            print(f'SMS sent to {name} ({phone_number}) successfully')
        else:
            print(f'Error sending SMS to {name} ({phone_number}): {response.content}')
        return response.status_code

    with open('recipients.csv', 'r') as f:
        reader = csv.reader(f)
        for row in reader:
            name = row[0]
            phone_number = row[1].replace(' ', '')  # Remove any whitespace
            send_sms_message(name, phone_number)

I expected the message to be sent to each phone number with their names.

How can I solve the issue?


Solution

  • I'm not sure this is the cause of your problem or not, but the current DialPad docs specify a different URL for sending text messages (https://dialpad.com/api/v2/sms).