You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Dialpad和CSV文件发送自动SMS时出现NotFound错误的解决方法

解决Dialpad API发送SMS返回"Not Found"错误的问题

我正在用Python通过Dialpad发送自动SMS,收件人信息来自CSV(格式为NAME, PHONENUMBER),但一直收到如下错误:

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'

当前使用的Python代码如下:

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)

解决步骤

  • 修正API端点路径:Dialpad发送SMS的正确API端点是https://dialpad.com/api/v2/sms,而非当前代码中的/sms_messages。路径错误会直接返回404 Not Found,这是最可能的原因。

  • 验证发送号码有效性:

    • 确保DIALPAD_PHONE_NUMBER是你Dialpad账户下已激活、支持SMS发送的号码,格式必须带+号前缀(如+1XXXXXXXXX)。
    • 确认该号码属于你的Dialpad团队,且未被限制SMS发送权限。
  • 检查API密钥权限:

    • 确认你的API密钥拥有sms:send权限,无对应权限也会导致类似错误。可在Dialpad控制台的API密钥设置中查看权限列表。
  • 处理CSV表头(如果存在):如果CSV文件第一行是表头(如NAME,PHONENUMBER),当前代码会把表头当作收件人处理,导致无效请求。可修改循环跳过第一行:

    with open('recipients.csv', 'r') as f:
        reader = csv.reader(f)
        next(reader)  # 跳过表头行
        for row in reader:
            name = row[0]
            phone_number = row[1].replace(' ', '')
            send_sms_message(name, phone_number)
    
  • 获取更详细的错误信息:修改错误处理逻辑,打印完整响应状态码和JSON内容,便于定位问题:

    else:
        print(f'Error sending SMS to {name} ({phone_number}): Status {response.status_code}, {response.json()}')
    

内容的提问来源于stack exchange,提问作者Nithila Logathas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:47:31