错误 403 在 Whatsapp 商业 API 中被禁止

问题描述 投票:0回答:2

我正在尝试实施 whatsapp 业务 API,但我遇到了禁止错误,我认为这是因为我没有足够的权限。 我还在 Postman 上实现了这段代码,它在那里工作正常,但它在应用程序中不起作用,我不知道为什么?

var client = new HttpClient();
        var request = new HttpRequestMessage(HttpMethod.Post, "https://graph.facebook.com/v15.0/110474688636083/messages");
        request.Headers.Add("Authorization", "Bearer EAAM2wERIcIsBAFSGQD3yCSYRd5II5u7hU1859z8VcpNFlZBjJrqJUR2QrgZADHlHYSCG0zWvpYqVkFlzea9TsN1wnu8ZBZBSiEaXQu5OZAQC63ufVKZAQDHZB25CIq3TBQ9rxr2DdZB1oZBgJtia4eAEBbzqfjwJpXm9M5SZCGhDh7JbK0s1ldz2Od099jHfKrFvnQDZD");
        var content = new StringContent("{\n    \"messaging_product\": \"whatsapp\",\n    \"to\": \""+WHATSAPPNO+"\",\n    \"type\": \"template\",\n    \"template\": {\n        \"name\": \"hello_world\",\n        \"language\": {\n            \"code\": \"en_US\"\n        }\n    }\n}", null, "application/json");
        request.Content = content;
        var response = await client.SendAsync(request);
        response.EnsureSuccessStatusCode();
        Console.WriteLine(await response.Content.ReadAsStringAsync());

谢谢你的时间

c# asp.net asp.net-mvc whatsapp http-status-code-403
2个回答
0
投票

您没有指定访问令牌。

request.Headers.Add("Authorization", "Bearer TOKEN");

TOKEN
这里是一个占位符而不是真正的令牌


0
投票

这将帮助您解决问题,

  • JSON 在您的代码中的格式不正确。

模型文件,

public class Language
{
    public string code { get; set; }
}

public class WhatsAppDataModel
{
    public string messaging_product { get; set; }
    public string to { get; set; }
    public string type { get; set; }
    public Template template { get; set; }
}

public class Template
{
    public string name { get; set; }
    public Language language { get; set; }
}

然后你需要两个包RestClient和Newtonsoft.Json, 主要的 c# 类函数,

string url = "https://graph.facebook.com/v15.0/110474688636083/messages";
Uri baseUri = new Uri(url);

IRestClient client = new RestClient(baseUri)
IRestRequest request = new RestRequest("", Method.Post);

request.AddHeader("Authorization", "Bearer " + Token);
request.AddHeader("Content-Type", "application/json");

Language lang = new Language();
lang.code = "en_US";

Template template = new Template();
template.name = "hello_world";
template.language = lang;

WhatsAppDataModel whatsapp = new WhatsAppDataModel();
whatsapp.messaging_product = "whatsapp";
whatsapp.to = "<whatsappNumber>";
whatsapp.type = "template";
whatsapp.template = template;

string body = JsonConvert.SerializeObject(whatsapp);

request.AddParameter("application/json", body , ParameterType.RequestBody);

var response = client.Execute(request);
var content = response.Content; // raw content as string  

facebook graph API 最新版本是 v16.0 而不是 v15.0。因此,请尝试更新这也可能对您有所帮助。

变更日志

在 v16.0 中发送消息的格式发生了变化check this

curl -X POST \
  'https://graph.facebook.com/v16.0/FROM_PHONE_NUMBER_ID/messages' \
  -H "Authorization: ACCESS_TOKEN" \
  -d '{
    "messaging_product": "whatsapp",
    "to": "1650XXXXXXX",
    "text": {"body" : "hi"}
   }'
© www.soinside.com 2019 - 2024. All rights reserved.