This guide shows how to send non-templated location messages to recipients using Plivo’s APIs. You can only send a non-templated WhatsApp message as a reply to a user-initiated conversation or as part of an existing ongoing conversation that started with a templated WhatsApp message.
To get started, you need a Plivo account — sign up with your work email address if you don’t have one already. If this is your first time using Plivo APIs, follow our instructions to set up a Go development environment.
Create a file called send_whatsapp.go
and paste into it this code.
package main
import (
"fmt"
"github.com/plivo/plivo-go"
)
func main() {
client, err := plivo.NewClient("<auth_id>","<auth_token>", &plivo.ClientOptions{})
if err != nil {
fmt.Print("Error", err.Error())
return
}
location, err := plivo.CreateWhatsappLocation(`{
"longitude": "122.148981",
"latitude": "37.483307",
"name": "Pablo Morales",
"address": "1 Hacker Way, Menlo Park, CA 94025"
}`)
if err != nil {
panic(err)
}
response, err := client.Messages.Create(
plivo.MessageCreateParams{Src:"+14151112221",Dst:"+14151112222",Type:"whatsapp", Location:&location},
)
if err != nil {
fmt.Print("Error", err.Error())
return
}
fmt.Printf("Response: %#v\n", response)
}
Replace the auth placeholders with your authentication credentials from the Plivo console. Replace the phone number placeholders with your phone numbers in E.164 format (for example, +12025551234). src should be a phone number registered to your WhatsApp Business Account. dst should be the recipient’s WhatsApp number.
Save the file and run it.