WhatsApp, kullanıcıların telefon numarası yerine kullanıcı adıyla iletişim kurabildiği bir modele geçiyor. Bu kullanıcılarda telefon numarası size iletilmeyebilir. Bu sayfa böyle kullanıcıları nasıl tanıyacağınızı ve onlara nasıl yanıt vereceğinizi anlatır.
#Kavramlar
| Alan | Anlamı |
|---|---|
from | Gönderenin telefon numarası. Telefonu görünmeyen kullanıcıda null gelir. |
user_id | WhatsApp kullanıcı kimliği (BSUID). Telefon null ise kullanıcıyı bu alanla tanırsınız. |
username | Kullanıcının WhatsApp kullanıcı adı (varsa). Meta özelliği kademeli açtığı için şu an çoğunlukla null gelir. |
#Gelen mesajda tanıma
JSON
{
"event": "message.received",
"data": {
"wamid": "wamid.HBgMOTA1NTUxMjM0NTY3FQIAEhggQTNFQkQ2RjQ3MEIyQzk0RTE4AA==",
"from": null,
"user_id": "TR.1234567890123456",
"username": "ayse.yilmaz",
"name": "Ayşe",
"type": "text",
"text": "Merhaba",
"phone_number_id": "1234567890",
"contact": { "wa_id": null, "user_id": "TR.1234567890123456", "username": "ayse.yilmaz", "profile_name": "Ayşe" }
}
}İpucu Müşteri kaydınızı eşleştirirken önce telefonu, telefon yoksa
user_id değerini anahtar olarak kullanın. username değişebilir; kalıcı kimlik olarak kullanmayın.user_id değerinin biçimi Meta tarafından belirlenir; yukarıdaki değer örnektir. Değeri olduğu gibi saklayın ve geri gönderin.
#Yanıt verme
Telefonu olmayan kullanıcıya yanıt verirken to yerine recipient alanını kullanın. Diğer tüm alanlar aynıdır.
curl -X POST https://api.verimerkezi.app/wa/messages \
-H "Authorization: Bearer $VM_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "phone_number_id": "1234567890", "recipient": "TR.1234567890123456", "type": "text", "text": { "body": "Merhaba Ayşe Hanım, nasıl yardımcı olabiliriz?" } }'await fetch('https://api.verimerkezi.app/wa/messages', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.VM_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
phone_number_id: '1234567890',
recipient: 'TR.1234567890123456',
type: 'text',
text: { body: 'Merhaba Ayşe Hanım, nasıl yardımcı olabiliriz?' },
}),
});import os, requests
requests.post(
"https://api.verimerkezi.app/wa/messages",
headers={"Authorization": f"Bearer {os.environ['VM_API_KEY']}"},
json={"phone_number_id": "1234567890", "recipient": "TR.1234567890123456",
"type": "text", "text": {"body": "Merhaba Ayşe Hanım, nasıl yardımcı olabiliriz?"}},
)<?php
$ch = curl_init('https://api.verimerkezi.app/wa/messages');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('VM_API_KEY'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'phone_number_id' => '1234567890',
'recipient' => 'TR.1234567890123456',
'type' => 'text',
'text' => ['body' => 'Merhaba Ayşe Hanım, nasıl yardımcı olabiliriz?'],
]),
]);
curl_exec($ch);recipientyalnıztoboşken kullanılır. Eş anlamlılarırecipient_idvebsuidalanlarıdır.recipientile gönderimde telefon biçimi denetimi yapılmaz.- Şablon, medya, tepki ve form mesajları da
recipientile gönderilebilir. - 24 saat penceresi ve diğer kurallar aynen geçerlidir.
#Diğer yerlerde BSUID
- Mesaj kayıtları:
GET /messagesyanıtında her kayıttauser_idveusernamedöner. - Durum olayları:
message.status.*olaylarında karşı tarafın BSUID değeriuser_idalanındadır. - Coexistence:
message.echoolayındauser_id, müşterinin BSUID değeridir. - KVKK silme:
POST /privacy/erasureisteğinde telefon yerineuser_idgönderebilirsiniz.
Uyarı Meta kullanıcı adı özelliğini kademeli olarak açmaktadır.
recipient ile gönderimi üretime almadan önce kendi hesabınızda gerçek bir kullanıcıyla deneyin.