Mesaj Gönderme ve Alma
Bu rehber sizi bir API anahtarından çalışan iki yönlü bir mesaj akışına götürür: giden bir mesaj gönderin, teslim durumunu izleyin ve yanıtı kendi sunucunuzda alın. Örnek olarak SMS kullanılır — aynı üç adımlı desen (gönder → izle → al) WhatsApp, RCS, Viber ve E-posta için de geçerlidir; her biri kendi uç noktasında çalışır. Yapacaklarınız:Ön koşullar
- Ayarlar → API Anahtarları altından bir API anahtarı. İnşa ederken bir sandbox anahtarı (
dv_test_sk_…) kullanın — sandbox gönderimleri ücretsiz ve simüledir; hem başarı hem de hata yollarını denemeniz için belirli (deterministik) teslim fişleri döndürür. Üretime geçerken canlı bir anahtar (dv_live_sk_…) kullanırsınız. - Kullandığınız kanaldan gönderim yapabilen bir gönderici numarası. SMS için bu, sahibi olduğunuz SMS uyumlu bir numaradır (Numbers API veya Dashboard → Numbers üzerinden arayıp satın alabilirsiniz).
fromalanını boş bırakırsanız Orbit hedef için uygun bir gönderici seçer. - Alma adımı için herkese açık bir HTTPS URL. Geliştirme sırasında herhangi bir tünl aracı (tunneling tool) iş görür.
X-API-Key başlığında taşıyor olur.
1. Mesaj gönderin
POST /messages/sms ile bir SMS gönderin. Yalnızca to ve body zorunludur; from isteğe bağlıdır.
202 Accepted’dır — mesaj kalıcı olarak kaydedilir ve teslim için kuyruğa alınır; henüz operatöre teslim edilmemiştir. Alanlar data altında yaşar; meta, destek için loglamanız gereken request_id’yi taşır.
id (msg_ ve ardından 32 onaltılı karakter) takip eden tüm çağrılar için tutamaçtır — durum sorguları, teslim webhook’ları ve mesaj izleme hep bu anahtarla çalışır. Sandbox yanıtları meta’ya "test_mode": true ekler.
Gönderimlerde her zaman bir
Idempotency-Key gönderin. Aynı anahtarı ve gövdeyi 24 saat içinde tekrarlarsanız, kopya gönderim yerine özgün yanıt döner; farklı bir gövdeyle tekrarlamak 409 IDEMPOTENCY_KEY_REUSED döndürür.Diğer kanallar
Her kanalın, o kanala uyan bir gövde biçimiyle/messages öneki altında kendi uç noktası vardır. Tek bir kanal-çokbiçimli (polymorphic) rota yoktur — kanalınıza uyan uç noktayı seçin:
2. Teslim durumunu izleyin
Kuyruktaki bir mesaj, alıcıya ulaşmadan önce bir durum yaşam döngüsü boyunca ilerler:id’si ile yeni status’u taşır:
message.sent— operatör tarafından kabul edildimessage.delivered— telefona teslim edildiği onaylandımessage.failed— kesin hata (payloadstatus’ufailed,undelivered,expiredvesubmitted_no_receipt’i ayırt eder; varsaerror_code/error_messagesağlayıcı nedenini taşır)
X-Orbit-Signature başlığını doğrulayın ve olay id’sine göre tekrarları ayıklayın — teslim en az bir kez (at-least-once) yapılır. Doğrulama kod parçası için Webhook güvenliği bölümüne bakın.
3. Gelen mesajları alın
Biri numaranıza yanıt verdiğinde (veya önce ona mesaj attığında), Orbit bir gelen mesaj kaydeder ve — yukarıdaki adımdamessage.received aboneliğiniz varsa — bunu webhook URL’nize POST eder:
direction=inbound filtresiyle aldığınız her şeyi listeleyin:
Gelen yönlendirme, Orbit’te sahibi olduğunuz numaralar için otomatiktir — gönderici numaralarınızın birine yapılan bir yanıt yakalanır ve bir
message.received aboneliğiyle webhook’unuza teslim edilir. Numara başına gelen URL kablolamak gerekmez.4. Gelen bir mesaja yanıt verin
Yanıt vermek, gelenfrom adresine geri çekilmiş bir başka gönderimdir. to ile from’u değiştirin ve POST /messages/sms’i yeniden çağırın:
GET /messages üzerindeki conversation_id filtresiyle çekebilirsiniz.
Sık görülen hatalar
Her hata aynı biçimi kullanır —error.code’u (BÜYÜK HARF sabiti) eşleştirin ve meta.request_id’yi loglayın:
Tam liste: Hata Kodları.
Sonraki adımlar
- Messaging API başvurusu — her mesaj uç noktası ve alan
- Mesaj durumu yaşam döngüsü — kanal başına tam durum kümesi
- Webhook’lara genel bakış — tekrar denemeler, teslim garantileri ve olay kataloğu
- API Entegrasyonu — sandbox, idempotency, paginasyon ve tüm kanallarda SDK’lar
- Hız Sınırları — kanal başına sınırlar ve yeniden deneme başlıkları