ASP.NET(C#)调用WhatsApp Cloud API自动发消息的实现求助
解决方案:将WhatsApp Cloud API的Curl命令转换为C# ASP.NET代码
下面是适配你现有HttpWebRequest代码的完整实现,完全对应官方提供的Curl命令逻辑:
// 填入Curl中的目标API地址 string apiUrl = "https://graph.facebook.com/v14.0/104958105698690/messages"; WebRequest request = HttpWebRequest.Create(apiUrl); // 设置请求方法为POST(对应Curl的-X POST) request.Method = "POST"; // 添加认证与内容类型头(对应Curl的-H参数) string bearerToken = "EABOoKYETUE4BANvFhvdZAX2udBdrHQ8ZBGJQjX2GJUskGlZCpRf17WZB4Etks1SMA2uGCBZAEl0cZB9Rw57hMpB6CPZCZCU9wIWYZCzsoxGcztZBkJHyNd1A8LZCIq5QFz1h6oLVLeacnpDAG05nhKkli43beAd6pDnrh5sKhnoOsIqzvK7uQXtLgZCENGH7wbUmtKfXOOb6ZAZBq7vA6Om78FVTKb"; request.Headers.Add("Authorization", $"Bearer {bearerToken}"); request.ContentType = "application/json"; // 构造请求体JSON(对应Curl的-d参数),替换to字段为目标手机号(需带国家代码,例如12345678901) string requestBody = @" { ""messaging_product"": ""whatsapp"", ""to"": ""12345678901"", ""type"": ""template"", ""template"": { ""name"": ""hello_world"", ""language"": { ""code"": ""en_US"" } } }"; // 将JSON写入请求流 using (StreamWriter writer = new StreamWriter(request.GetRequestStream())) { writer.Write(requestBody); } // 发送请求并读取响应 using (WebResponse response = request.GetResponse()) using (StreamReader reader = new StreamReader(response.GetResponseStream())) { string urltext = reader.ReadToEnd(); // 可在此处处理响应内容,比如解析JSON或打印结果 }
关键对应说明:
- 请求URL:直接使用Curl命令中的POST目标地址,填入
HttpWebRequest.Create()即可 - 请求方法:必须设置为
POST,匹配Curl的-X POST参数 - 请求头:
Authorization:携带你的API令牌,对应Curl里的Authorization: Bearer ...Content-Type:固定为application/json,告知API请求体格式
- 请求体:将Curl中
-d后的JSON内容转为C#字符串,注意填充to字段为合法的WhatsApp手机号(需包含国家代码,不带+号)
注意事项:
- 替换
bearerToken为你自己的有效API令牌(令牌过期需重新获取) to字段的手机号必须完成WhatsApp号码验证,格式符合官方要求- 确保
hello_world模板已在你的WhatsApp Business账号中配置并通过审核 - 建议添加
try-catch块捕获网络错误、API错误响应等异常情况
内容的提问来源于stack exchange,提问作者mosh hamedani
相关产品推荐
相关产品推荐

