Skip to main content
Flextell, sohbet ve bildirim gibi değişiklikleri Pusher Channels protokolüyle anlık olarak istemcilere iletir. Entegrasyonunuz bu olayları dinleyerek ekranını yenilemeden güncel kalabilir. Bu sayfa bağlantı kurmayı ve kanal aboneliğini yetkilendirmeyi anlatır. Kanal ve olay ayrıntıları için Kanallar ve olaylar, çalışan bir istemci için Örnek istemci sayfasına bakın.

Nasıl çalışır

Flextell olayları yayınlar, siz Pusher üzerinden abone olursunuz. Abonelik yönü tek taraflıdır: gerçek zamanlı bağlantı yalnızca bildirim taşır, işlem yapmak için REST API’yi kullanırsınız. Flextell yalnızca özel (private-) kanalları ve bir adet presence- kanalını kullanır. Herkese açık kanal yoktur. Her aboneliği Flextell sunucusu imzalar. İmzayı almak için kendi access token’ınızla /api/broadcasting/auth endpoint’ini çağırırsınız.
Gerçek zamanlı olaylar yalnızca “bir şey değişti” bilgisini verir. REST API gerçeğin kaynağı olarak kalır. Bağlantı kopup yeniden kurulduğunda kaçan olaylar tekrar gönderilmez, bu yüzden aboneliğin kurulduğu anda REST’ten güncel durumu yeniden okuyun. Ayrıntı için Teslim garantileri bölümüne bakın.

Bağlantı bilgileri

Pusher istemcisini yapılandırmak için şu bilgilere ihtiyacınız var.
Yetkilendirme endpoint’i /api/v1 altında değil, /api altındadır: https://app.flextell.ai/api/broadcasting/auth.
Anahtarı almak için Destek sayfasındaki yolları kullanın.

Kanal yetkilendirmesi

Özel veya presence- bir kanala abone olurken Pusher istemciniz socket_id ve channel_name ile Flextell’e yetkilendirme isteği gönderir. Flextell isteği doğrularsa imza döner, istemciniz bu imzayla aboneliği tamamlar.

İstek

İstek gövdesini form (application/x-www-form-urlencoded) veya JSON olarak gönderebilirsiniz. JSON gövdesi bozuksa 400 ve MALFORMED_JSON hata kodu döner. Gerekenler:
  • Authorization: Bearer <access_token> başlığı.
  • Herhangi bir scope gerekmez.
  • X-Tenant başlığı gerekmez. Gönderseniz de Flextell yok sayar, çünkü klinik bilgisi kanal adından alınır.

Yanıtlar

Hata yanıtı standart zarfı kullanır:
Hata yapısının tamamı için Hata kodları sayfasına bakın. 403 aldığınızda Pusher istemciniz kanalda pusher:subscription_error olayını üretir.
Access token kısa ömürlüdür. Yetkilendirme isteğini her gönderdiğinizde güncel token’ı kullanın ve süresi dolmuşsa önce yenileyin. Ayrıntılar için Token’lar sayfasına bakın.

Klinik ve izin kontrolleri

Yetkilendirme isteği klinik bağlamı taşımaz. Kontrol, kanal adındaki kimliğe göre ve token’ın ait olduğu kullanıcı için yapılır. Önce kullanıcının o klinikte üye olup olmadığına bakılır. Üye değilse ya da klinik yoksa abonelik reddedilir. Üyelik varsa kanala özgü izin kuralı uygulanır.
Bir kullanıcının sohbeti görebilmesi için ya tüm sohbetleri görme iznine sahip olması ya da sohbetteki kişinin Lead’inin kendisine atanmış olması gerekir. Kişisi veya Lead’i olmayan sohbetleri bu izne sahip olmayan kullanıcılar göremez. Görünürlük kuralları için İzinler ve görünürlük sayfasına bakın.
Bazı noktalara dikkat edin.
  • Tüm sohbetleri görme izni olmayan kullanıcı private-chat-log.{tenantId} kanalına abone olamaz ve 403 alır. Bu kullanıcılar için private-chat-log-activity.{tenantId} kanalını kullanın.
  • private-App.Models.User.{userId} kanalı kliniğe bağlı değildir. Bir kullanıcı birden fazla kliniğe üye olabileceğinden bu kanaldaki olaylar tenant_id alanı taşır. Aktif kliniğinize ait olmayanları istemcinizde atın. userId, GET /api/v1/account yanıtındaki Flextell kullanıcı kimliğidir.
  • Kanal adındaki tenantId ve conversationId sayısal kimliklerdir. Klinik kimliği için Klinikler ve X-Tenant sayfasına bakın.
  • presence-conversation.{conversationId} kanalını yalnızca web sitesi widget’ı kullanır. Ziyaretçi yetkilendirmesi ayrı bir endpoint üzerinden yapılır; bkz. Web sitesi widget’ı.

Teslim garantileri

Gerçek zamanlı kanalı güvenilir bir olay kuyruğu gibi kullanmayın. Aşağıdaki davranışları göz önünde bulundurun.
1

Abone olun

Kanala abone olun ve pusher:subscription_succeeded olayını bekleyin.
2

Durumu yeniden okuyun

Bu olayda REST’ten güncel durumu çekin, örneğin sohbet listesini ve açık sohbetin mesajlarını. Olay, ilk abonelikte ve her yeniden bağlanmadan sonra gelir.
3

Olayları uygulayın

Bundan sonra gelen olayları ekrandaki duruma uygulayın. Eksik yükte REST’e dönün.
Flextell’in panel ve mobil uygulaması da aynı yöntemi kullanır: her abonelik kurulduğunda ve bağlantı yeniden kurulduğunda REST’ten yeniden okur.

İlgili sayfalar

Kanallar ve olaylar

Her kanalın olayları ve yük alanları.

Örnek istemci

Abonelik ve yeniden bağlanma için çalışan örnek.

Token'lar

Access token alma ve yenileme.

Bildirimler

Kişisel kanalda gelen bildirimlerin REST karşılığı.