Pushizo Docs
Rehberler

RCS: Google RBM ve Twilio RCS, zengin kartlar ve SMS geri düşüşü

RCS (Rich Communication Services) kanalı Android mesajlaşma uygulamasına zengin kart, görsel ve öneri çipleri gönderir. RCS desteklemeyen cihazlar aynı mesajın metin karşılığını app'in SMS kanalından alır (ADR-0029 §3).…

RCS (Rich Communication Services) kanalı Android mesajlaşma uygulamasına zengin kart, görsel ve öneri çipleri gönderir. RCS desteklemeyen cihazlar aynı mesajın metin karşılığını app'in SMS kanalından alır (docs/adr/0029-whatsapp-rcs-iki-yonlu-sms-eposta-isindirma.md §3). Kanal, plan özelliği olarak SMS gerektirir.

1. Sağlayıcılar

SağlayıcıGerekenlerNotlar
google_rbmRBM ajan kimliği, servis hesabı JSON'u, webhook client_tokenGönderimden önce cihaz yeteneği sorgulanır; desteklemeyen cihaz doğrudan SMS'e düşer
twilioAccount SID, Auth Token, RCS göndericili Messaging Service SID, isteğe bağlı Content SIDZengin içerik Twilio Content API (HX…) ile; geri düşüş Twilio'da değil Pushizo'nun SMS kanalında yapılır
mock—Yerel geliştirme ve E2E; numarası 0006 ile biten alıcı RCS desteklemiyor sayılır
PUT /internal/v1/apps/{appId}/channels/rcs
{
  "provider": "google_rbm",
  "agent_id": "markam_agent",
  "service_account": { "project_id": "rbm-proj", "client_email": "rbm@rbm-proj.iam.gserviceaccount.com", "private_key": "-----BEGIN PRIVATE KEY-----…" },
  "client_token": "rbm-istemci-belirteci",
  "sms_fallback": true
}

Servis hesabı özel anahtarı, client token ve Twilio auth token zarf şifreli saklanır ve yanıtta dönmez. Webhook adresini (/hooks/rcs/{sağlayıcı}/{token}) kanal kartından alıp RBM Partner Console'a veya Twilio Messaging Service "Incoming messages" alanına girin. RBM olayları X-Goog-Signature, Twilio istekleri X-Twilio-Signature ile doğrulanır.

2. İçerik

  • contents: düz metin (en fazla 3072 karakter).
  • rcs_card: bağımsız zengin kart — title (≤ 200), description (≤ 2000), media_url (https), media_height (SHORT/MEDIUM/TALL), orientation.
  • rcs_suggestions: öneri çipleri — yanıt (reply), bağlantı (url), arama (dial); metin ≤ 25 karakter; kartta en fazla 4, metinde en fazla 11.
  • rcs_content_sid + rcs_content_variables: Twilio Content API şablonu (değişkenler Liquid destekler).
  • rcs_fallback_text: SMS geri düşüşünde gönderilecek metin.

Yalnızca RCS içeriği (kart, Content SID) olan bildirim ve kampanyalarda hedefte channels: ["rcs"] açıkça verilmelidir.

3. SMS geri düşüşü

sms_fallback varsayılan olarak açıktır. Şu durumlarda teslimat SMS kanalından gönderilir ve teslimat kaydında fallback_channel = sms görünür:

  1. Cihaz RCS desteklemiyor (RBM yetenek sorgusu 404 veya Twilio geçersiz alıcı).
  2. RCS gönderimi kalıcı hata aldı.
  3. Gönderimden sonra webhook ile gecikmeli teslim hatası geldi (Twilio failed/undelivered, mock failed): teslimat yeniden kuyruğa alınır ve SMS'e yönlendirilir; sent sayacı çift sayılmaz.

SMS metni sırasıyla rcs_fallback_text, kart başlığı + açıklaması veya contents ve ilk bağlantı önerisinden üretilir. STOP ile SMS'ten çıkmış numaraya geri düşülmez; app'te aktif SMS kanalı yoksa teslimat SMS_FALLBACK_UNAVAILABLE ile başarısız olur. Geri düşüş maliyeti SMS sağlayıcısına yazılır.

4. Gelen mesajlar

Kişinin metin yanıtı, öneri çipi seçimi (content.payload = postback) ve gönderdiği dosya Gelen kutusunda RCS konuşması olarak görünür; anahtar sözcükler RCS'de de çalışır (sözcüğün kanallarına rcs eklenmişse). Gelen kutusundan RCS yanıtı metin olarak gönderilir.

5. Raporlama

Teslim ve okundu bilgileri RBM DELIVERED/READ ve Twilio durum geri bildirimleriyle teslimata işlenir; mesaj sayaçlarında sms_fallback ayrıca tutulur.

Bu sayfada