skip to Main Content

I created an app and configure whatsapp but in configuring webhook I have issues

The error
URL can’t be saved. The URL is ok, the endpoint was tested wih postman with no issues.
the error

Server Code
I use Asp.Net Core – WebApi project and create a controller with the method and print in the console a log. I return Ok + challenge if token is equals, otherwise 403 http response.
My code

using Microsoft.AspNetCore.Mvc;

namespace MyApiZ.WebApi.Controllers
{
    [ApiController]
    [Route("")]
    public class MessageController : Controller
    {
        const string VerfifyToken = "1234";

        [HttpGet("webhook")]
        public ActionResult<string> SetupWebHook([FromQuery(Name = "hub_mode")] string hubMode,
                                                 [FromQuery(Name = "hub_challenge")] int hubChallenge,
                                                 [FromQuery(Name = "hub_verify_token")] string hubVerifyToken)
        {
            Console.WriteLine("█ WebHook with get executed. ");
            Console.WriteLine($"█ Parameters: hub_mode={hubMode}  hub_challenge={hubChallenge}  hub_verify_token={hubVerifyToken}");
            if (!hubVerifyToken.Equals(VerfifyToken))
            {
                return Forbid("VerifyToken doesn't match");
            }
            return Ok(hubChallenge);
        }

        [HttpPost("webhook")]
        public ActionResult ReceiveNotification([FromBody] string data)
        {
            Console.WriteLine("█ WebHook with Post executed. ");
            Console.WriteLine(data);
            return Ok();
        }

        public IActionResult Index()
        {
            return View();
        }
    }
}

Test with Postman
No issues in request from Postman
test with postman

My app is hosted in Azure App Service. I checked the app log in Azure Portal.
When the request is executed in Postman, the messages are printed. But when click on facebook in the "Verify and save button" the error is present, the message aren’t print in the log, the endpoint is never called.
azure logs

webhook error

3

Answers


  1. Chosen as BEST ANSWER

    Simple change
    from

    public ActionResult<string> SetupWebHook([FromQuery(Name = "hub_mode")] string hubMode,
                                                     [FromQuery(Name = "hub_challenge")] int hubChallenge,
                                                     [FromQuery(Name = "hub_verify_token")] string hubVerifyToken)
    

    to

    public ActionResult<string> SetupWebHook([FromQuery(Name = "hub.mode")] string hubMode,
                                                     [FromQuery(Name = "hub.challenge")] int hubChallenge,
                                                     [FromQuery(Name = "hub.verify_token")] string hubVerifyToken)
    

  2. Once you click the Verify and Save button then you will get the API request from WhatsApp to your server webhook callback URL.

    Now, your webhook needs to respond back > hub_challenge.

    Login or Signup to reply.
  3. I have written a brief article on WhatsApp Cloud API like how to send and receive WhatsApp messages and also set up a never expiry access token. Please have a look enter link description here

    You will get your answer from my article. BTW when you click the verify & save button then you will get the response from WhatsApp to your callback URL. You just need to respond back the hub_challenge key(sent from whatsapp) respond back to whatsapp with 200 status code then your webhook should automatically verify

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search