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

本地正常的WhatsApp Cloud API部署到服务器后失效(Laravel环境)

WhatsApp Cloud API部署后报错400的排查方案

本地用Laravel编写的sendWithWhatsapp方法调用WhatsApp Cloud API发送验证消息一切正常,但部署到服务器后返回400错误:

HTTP请求返回状态码400: {"error":{"message":"Unsupported post request. Object with ID '114965591551646' does not exist, cannot be loaded due to (truncated...)

方法代码如下:

public static function sendWithWhatsapp($to, $code)
{
    $phoneId = '114965591551646';
    $payload = [
        'messaging_product' => 'whatsapp',
        'to' => $to,
        "type" => "template",
        "template" => [
            "name" => "sms_verification",
            "language" => [
                "code" => "en"
            ],
            "components" => [[
                "type" => "body",
                "parameters" => [[
                    "type" => "text",
                    "text" => $code
                ]]
            ]]
        ]
    ];

    return Http::withToken(config('app.whatsapp_bearer'))
        ->post('https://graph.facebook.com/v16.0/' . $phoneId . '/messages', $payload)
        ->throw()->json();
}

排查与修复步骤

  • 核对服务器的Bearer Token:本地正常说明本地的whatsapp_bearer配置没问题,服务器上要检查.env里对应的配置项是否和本地完全一致,有没有拼写错误、多余空格。另外要确认这个Token是否有权限访问线上的Phone ID,部分测试Token仅支持本地环境使用。
  • 检查Phone ID的有效性:报错里的114965591551646可能是测试环境的Phone ID,线上需要换成正式WhatsApp Business Account绑定的ID。登录Meta Business Manager,确认线上用的Phone ID正确,且该ID已完成验证、绑定到对应应用。
  • 添加服务器IP到Meta白名单:Meta的Graph API可能限制了请求来源IP,本地IP在白名单但服务器IP不在。进入Meta开发者平台的应用设置,在IP Allowlist中添加服务器的公网IP。
  • 确认API版本与模板状态:代码用的是v16.0,检查服务器请求是否实际使用该版本,避免代理或缓存篡改版本号。同时确认sms_verification模板已通过线上审核,语言、参数配置和代码完全匹配,测试模板无法用于正式环境。
  • 测试服务器网络连通性:在服务器上执行curl -I https://graph.facebook.com/v16.0/114965591551646,看是否能正常返回响应。如果不通,检查服务器防火墙、安全组是否放行HTTPS请求到Facebook域名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:44:58