Bu sayfada, bir Google Chat uygulamasının Google Chat dışındaki bir hizmete veya araca nasıl bağlanacağı açıklanmaktadır. Chat uygulamaları kendi başlarına güçlü olsa da genellikle diğer sistemlerle birlikte çalışır ve hesapları bağlamak, veri erişimine yetki vermek, ek verileri görüntülemek veya kullanıcı tercihlerini yapılandırmak için tamamlayıcı uygulamalara ihtiyaç duyar.
Ön koşullar
Etkileşimli özellikler için etkinleştirilmiş bir Google Chat uygulaması. Etkileşimli bir Chat uygulaması oluşturmak için kullanmak istediğiniz uygulama mimarisine göre aşağıdaki hızlı başlangıç kılavuzlarından birini tamamlayın:- Google Cloud Functions ile HTTP hizmeti
- Google Apps Komut Dosyası
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
Kullanıcıdan Chat uygulaması yapılandırmasını isteme
Bir isteğin tamamlanması için doğrudan Chat uygulamasında yapılamayan ek yapılandırma gerekiyorsa normal bir yanıtın parçası olarak kullanıcıya bir yapılandırma URL'si döndürün veya aşağıdaki biçimde özel olarak sunun:
{ "actionResponse": { "type": "REQUEST_CONFIG", "url": "CONFIGURATION_URL" } }
Bu, Google Chat'e kullanıcıya gizli bir istem göstermesini söyler. Bu istemde CONFIGURATION_URL
, kullanıcının ek kimlik doğrulama, yetkilendirme veya yapılandırma için ziyaret etmesi gereken bir bağlantıdır. REQUEST_CONFIG
yanıtı, normal bir yanıt mesajıyla birbirini hariç tutar. Metinler, kartlar veya diğer özellikler yoksayılır.
Yapılandırma isteğini tamamlama
Chat uygulamanızın aldığı her MESSAGE
etkileşim etkinliğiconfigCompleteRedirectUrl
alanını da içerir. İşlemin tamamlanmasının ardından kullanılacak bu URL'yi yapılandırma URL'nize kodlamanız gerekir. Bu URL'ye yönlendirme, Google Chat'e yapılandırma isteğinin yerine getirildiğini bildirir.
Chat uygulamanız başladığında akış, alınan belirli mesaja bağlıdır. Chat uygulaması, @app help
gibi bir mesaja yanıt olarak ek yapılandırma gerektirmeden bir mesajla yanıt vermelidir.
Bir kullanıcı, orijinal mesajda sağlanan configCompleteRedirectUrl
adresine başarıyla yönlendirildiğinde Google Chat aşağıdaki adımları gerçekleştirir:
- İsteği başlatan kullanıcıya gösterilen isteği silin.
- Orijinal mesajı herkese açık hale getirerek alanın diğer üyelerinin görmesini sağlayabilirsiniz.
- Orijinal mesajı aynı Chat uygulamasına ikinci kez gönderin.
configCompleteRedirectUrl
ziyareti yalnızca tek bir kullanıcı mesajını etkiler.
Bir kullanıcı bir Chat uygulamasına birden fazla kez mesaj göndermeye çalıştıysa ve bunun sonucunda birden fazla istem aldıysa belirli bir istemi tıklayıp kimlik doğrulama ve yapılandırma sürecini tamamlamak yalnızca söz konusu mesajı etkiler. Diğer mesajlarda değişiklik yapılmaz.
Bu şekilde yeniden gönderilen bir MESSAGE
etkileşim etkinliği, orijinal etkinlikle aynı olmalıdır. Ancak MESSAGE
etkileşim etkinliklerinin farklı olabileceği bazı durumlar vardır. Örneğin, bir mesajda hem A Chat uygulaması hem de B Chat uygulamasından bahsediliyor olabilir. A Chat uygulaması, B Chat uygulamasıyla kimlik doğrulamadan önce normal bir mesajla yanıt verirse kullanıcı mesajı düzenleyebilir. Bu durumda, kullanıcı kimlik doğrulama ve yapılandırmayı tamamladıktan sonra B sohbet uygulaması, düzenlenmiş mesaj metnini alır.
Chat kullanıcısının kimliğini Chat dışında doğrulama
Bir API için OAuth yetkilendirmesi istemek gibi bazı durumlarda, uygulamanızın kullanıcı kimliğini korurken Chat dışındaki bir URL'ye bağlantı vermesi gerekir. Bu gibi durumlarda kullanıcıyı tanımlamanın en iyi yolu, hedef uygulamayı Google ile oturum açma ile korumaktır.
Kullanıcı kimliğini almak için oturum açma sırasında verilen kimlik jetonunu kullanın. sub
iddiası, kullanıcının benzersiz kimliğini içerir ve Google Chat'teki kullanıcı kimliğiyle ilişkilendirilebilir.
İki kimlik tam olarak aynı olmasa da zorlama yapılabilir. sub
iddiasının değerini Google Chat users/{user}
olarak zorlamak için değere users/
ön ekleyerek ekleyin. Örneğin, 123
hak talebi değeri, Chat uygulamanıza gönderilen mesajlardaki users/123
kullanıcı adına eşdeğerdir.
İlgili konular
- Kullanıcı etkileşimini alma ve yanıtlama
- Profilim uygulama örneği, kullanıcıyı tanımlamak için Google ile oturum açma yanıtındaki kimlik jetonunu kullanır.