You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Twilio发送WhatsApp消息遇ApiException:找不到指定From地址通道

解决Twilio发送WhatsApp消息时的“找不到指定From地址的Channel”异常

这个错误我之前帮人排查过好几次,核心原因就是Twilio找不到你指定的那个From号码对应的WhatsApp发送通道,下面给你一步步解决:

常见原因及解决方案

1. 测试阶段误用了非沙盒号码(最常见)

Twilio的WhatsApp服务分沙盒环境正式商业环境

  • 如果你还在测试,必须使用Twilio官方提供的沙盒WhatsApp号码(比如默认的whatsapp:+14155238886)作为From地址,普通的Twilio电话号码不能直接用来发WhatsApp消息,需要先完成商业账号的审核。
  • 同时,你的接收号码(To)必须先通过沙盒验证:发送Twilio沙盒页面给出的指定代码到沙盒号码,完成绑定后才能接收测试消息。

2. 号码格式不符合要求

确保FromTo号码严格遵循whatsapp:+[国家码][纯数字号码]的格式:

  • 错误示例:whatsapp:0123456789(缺国家码)、whatsapp:+1 (234) 567-8901(有符号/空格)
  • 正确示例:whatsapp:+12345678901

3. 账户配置或权限问题

  • 确认你的ACCOUNT_SIDAUTH_TOKEN完全正确,没有拼写错误或多余空格
  • 如果是正式商业环境,需要确保你的Twilio号码已经完成WhatsApp的商业注册与审核,登录Twilio控制台可以查看号码的WhatsApp状态,只有审核通过的号码才能作为From地址发送消息

修正后的代码示例

把你的代码替换成沙盒环境的正确写法,记得替换成你自己的账户信息和验证过的接收号码:

package com.lt;
import com.twilio.Twilio;
import com.twilio.rest.api.v2010.account.Message;

public class WhatsAppTest {
    public static final String AUTH_TOKEN = "your_actual_auth_token";
    public static final String ACCOUNT_SID = "your_actual_account_sid";
    // Twilio官方提供的测试沙盒WhatsApp号码
    public static final String TWILIO_WHATSAPP_SANDBOX = "whatsapp:+14155238886";

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        Message message = Message.creator(
            // 替换成你已验证的接收号码,格式必须正确
            new com.twilio.type.PhoneNumber("whatsapp:+[你的国家码][你的号码]"),
            TWILIO_WHATSAPP_SANDBOX,
            "Hello from your friendly neighborhood Java application!")
            .create();
        System.out.print(message.getDateSent().toString());
    }
}

额外排查步骤

  1. 登录Twilio控制台,进入WhatsApp沙盒页面,确认你的接收号码已经在“已验证的号码”列表中
  2. 检查控制台的错误日志,里面会有更详细的错误细节,帮助定位问题

内容的提问来源于stack exchange,提问作者aman girma

火山引擎 最新活动