Meta WhatsApp Business API - unable to send text message - but can send template message
I am attempting to use the Meta WhatsApp business API found here: https://developers.facebook.com/docs/whatsapp/cloud-api/overview
Everything has been setup correctly as far as I can tell as I am able to send template messages with my ACCESS_TOKEN and my FROM_PHONE_NUMBER_ID to my mobile using the below:
curl -i -X POST \ https://graph.facebook.com/v14.0/FROM_PHONE_NUMBER_ID/messages \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "messaging_product": "whatsapp", "to": "MY_MOBILE", "type": "template", "template": { "name": "hello_world", "language": { "code": "en_US" } } }'
I would now like to send a free form text message by using the example given on the above link. The example is:
curl -X POST \ 'https://graph.facebook.com/v14.0/FROM_PHONE_NUMBER_ID/messages' \ -H "Authorization: ACCESS_TOKEN" \ -d '{ "messaging_product": "whatsapp", "to": "1650XXXXXXX", "text": {"body" : "hi"} }'
I use:
curl -X POST \ 'https://graph.facebook.com/v14.0/MY_FROM_PHONE_NUMBER_ID/messages' \ -H "Authorization: ACCESS_TOKEN" \ -d '{ "messaging_product": "whatsapp", "to": "MY_MOBILE", "text": {"body" : "hi"} }'
This returns a valid message id with no errors however the message is never received.
Some confusing points to note: Why is there no 'Bearer' directive in the ACCESS_TOKEN, it is required for the template call. ( I have tried with and without )? Why does the example show 1650XXXXXX as the mobile number, surely it's just an example but why put the 1650 there in the first place!!! ?