PushizoDocs
Kanallar

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
}
```text

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 kutusu**nda 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