咨询WhatsApp API图片下载接口返回类型(Laravel开发场景)
WhatsApp API 图片下载接口处理(Laravel 开发场景)
接口返回类型说明
WhatsApp 图片下载接口返回的是二进制图片流,响应头的 Content-Type 会对应图片的实际格式(比如 image/jpeg、image/png),这也是 Insomnia 能直接渲染出图片的原因。
Laravel 中下载并存入数据库的实现步骤
获取 Webhook 回调的媒体信息
Webhook 回调会包含图片的下载链接(通常字段名为media_url),如果无法直接查看回调内容,在 Laravel 的 Webhook 处理控制器里打日志即可获取完整结构:// Webhook 接收控制器的方法内 Log::info('WhatsApp Webhook 完整数据', request()->all());之后去
storage/logs/laravel.log里就能找到媒体相关的字段信息。请求图片接口获取二进制数据
用 Laravel 内置 Http 客户端请求下载链接,必须带上 WhatsApp API 的 Bearer Token:$token = env('WHATSAPP_API_TOKEN'); $mediaUrl = '从Webhook中提取的media_url'; $response = Http::withToken($token)->get($mediaUrl); if (!$response->successful()) { Log::error('图片下载失败', ['状态码' => $response->status(), '链接' => $mediaUrl]); return; } // 获取二进制图片数据和MIME类型 $imageBinary = $response->body(); $mimeType = $response->header('Content-Type');存入数据库
推荐把二进制数据转成 Base64 字符串存入(避免二进制存储的兼容性问题):$base64Image = base64_encode($imageBinary); // 假设模型为 WhatsAppMedia,对应字段为 image_base64 和 mime_type WhatsAppMedia::create([ 'image_base64' => $base64Image, 'mime_type' => $mimeType, ]);
注意事项
- WhatsApp 的媒体下载链接有有效期,要在回调触发后及时下载。
- 请求下载接口必须携带有效的 Bearer Token,否则会返回 401 未授权。
内容的提问来源于stack exchange,提问作者Duas Vias
相关产品推荐
相关产品推荐

