Bu sayfada, harici tetikleyicileri kullanarak Chat alanına eşzamansız mesajlar göndermek için bir webhook'un nasıl ayarlanacağı açıklanmaktadır. Örneğin, bir izleme uygulamasını, bir sunucu çöktüğünde Chat'te Nöbetçi personeli bilgilendirecek şekilde yapılandırabilirsiniz. Chat uygulamasıyla eşzamanlı mesaj göndermek için Mesaj gönderme bölümüne bakın.
Bu tür mimari tasarımında, iletişim tek yönlü olduğu için kullanıcılar webhook veya bağlı harici uygulamayla etkileşime geçemez. Webhook'lar konuşmaya dayalı değildir. Ancak kullanıcılardan veya Chat uygulaması etkileşim etkinliklerine yanıt veremez ya da onlardan gelen mesajları alamazlar. Mesajları yanıtlamak için webhook yerine bir Chat uygulaması oluşturun.
Webhook, teknik olarak bir Chat uygulaması değildir. Webhook'lar, uygulamaları standart HTTP istekleri kullanarak bağlar. Bu sayfada webhook'tan sadeleştirme amacıyla bir Chat uygulaması bahsedilir. Her webhook yalnızca kayıtlı olduğu Chat alanında çalışır. Gelen webhook'lar doğrudan mesajlarda çalışır, ancak yalnızca tüm kullanıcılar için Chat uygulamaları etkinleştirilmişse çalışır. Google Workspace Marketplace'te webhook'u yayınlayamazsınız.
Aşağıdaki şemada, Chat'e bağlı bir webhook'un mimarisi gösterilmektedir:
Önceki şemada, bir Chat uygulamasında aşağıdaki bilgi akışı bulunur:
- Chat uygulaması mantığı, proje yönetimi sistemi veya bilet alma aracı gibi harici üçüncü taraf hizmetlerinden bilgi alır.
- Chat uygulaması mantığı, belirli bir Chat alanına webhook URL'si kullanarak mesaj gönderebilen bulut veya şirket içi sistemde barındırılır.
- Kullanıcılar, ilgili Chat alanında Chat uygulamasından mesaj alabilir ancak Chat uygulamasıyla etkileşimde bulunamaz.
Ön koşullar
Python
- Chat'e erişimi olan bir Google Workspace hesabı. Google Workspace kuruluşunuz, kullanıcıların gelen webhook'ları eklemesine ve kullanmasına izin vermelidir.
- Python 3.10.7 veya üzeri.
httplib2
kitaplığı. Gerekirsepip
kullanarak kitaplığı yüklemek için aşağıdaki komut satırı arayüzü (CLI) komutunu çalıştırın:pip install httplib2
Mevcut bir Chat alanı.
Node.js
- Chat'e erişimi olan bir Google Workspace hesabı. Google Workspace kuruluşunuz, kullanıcıların gelen webhook'ları eklemesine ve kullanmasına izin vermelidir.
- Node.js ve npm yüklü olmalıdır.
- Mevcut bir Chat alanı.
Java
- Chat'e erişimi olan bir Google Workspace hesabı. Google Workspace kuruluşunuz, kullanıcıların gelen webhook'ları eklemesine ve kullanmasına izin verebilir.
- Java 11 veya sonraki sürümler.
- Apache Maven
- Mevcut bir Chat alanı.
Apps Komut Dosyası
- Chat'e erişimi olan bir Google Workspace hesabı. Google Workspace kuruluşunuz, kullanıcıların gelen webhook'ları eklemesine ve kullanmasına izin verebilir.
- Mevcut bir Chat alanı.
Webhook oluşturma
Webhook oluşturmak için, mesajı almak istediğiniz Chat alanında söz konusu webhook'u kaydedin ve mesaj gönderen bir komut dosyası yazın.
Gelen webhook'u kaydedin
- Tarayıcıda Chat'i açın. Webhook'lar, Chat mobil uygulamasından yapılandırılamaz.
- Webhook eklemek istediğiniz alana gidin.
- Alan başlığının yanındaki daha fazla genişlet okunu, ardından Uygulamalar ve entegrasyonlar'ı tıklayın.
Webhook ekle'yi tıklayın.
Name (Ad) alanına
Quickstart Webhook
girin.Avatar URL'si alanına
https://developers.google.com/chat/images/chat-product-icon.png
yazın.Kaydet'i tıklayın.
Webhook URL'sini kopyalamak için
Diğer'i ve ardından Bağlantıyı kopyala'yı tıklayın.
Webhook komut dosyasını yazma
Örnek webhook komut dosyası, webhook URL'sine POST
isteği göndererek webhook'un kaydedildiği alana bir mesaj gönderir. Chat API, Message
örneğiyle yanıt verir.
Webhook komut dosyası oluşturmayı öğrenmek için bir dil seçin:
Python
Çalışma dizininizde
quickstart.py
adlı bir dosya oluşturun.quickstart.py
alanına aşağıdaki kodu yapıştırın:url
değişkeninin değerini, webhook'u kaydederken kopyaladığınız webhook URL'si ile değiştirin.
Node.js
Çalışma dizininizde
index.js
adlı bir dosya oluşturun.index.js
alanına aşağıdaki kodu yapıştırın:url
değişkeninin değerini, webhook'u kaydederken kopyaladığınız webhook URL'si ile değiştirin.
Java
Çalışma dizininizde
pom.xml
adlı bir dosya oluşturun.pom.xml
alanına aşağıdakileri kopyalayıp yapıştırın:Çalışma dizininizde şu dizin yapısını oluşturun
src/main/java
.src/main/java
dizinindeApp.java
adlı bir dosya oluşturun.App.java
alanına aşağıdaki kodu yapıştırın:URL
değişkeninin değerini, webhook'u kaydederken kopyaladığınız webhook URL'si ile değiştirin.
Apps Komut Dosyası
Tarayıcıda Apps Komut Dosyası'na gidin.
Yeni Proje'yi tıklayın.
Aşağıdaki kodu yapıştırın:
url
değişkeninin değerini, webhook'u kaydederken kopyaladığınız webhook URL'si ile değiştirin.
Webhook komut dosyasını çalıştırma
Bir KSA'da şu komut dosyasını çalıştırın:
Python
python3 quickstart.py
Node.js
node index.js
Java
mvn compile exec:java -Dexec.mainClass=App
Apps Komut Dosyası
- Çalıştır'ı tıklayın.
Kodu çalıştırdığınızda webhook, kaydı kaydettiğiniz alana bir mesaj gönderir.
Bir mesaj dizisi başlatma veya yanıtlama
Mesaj isteği gövdesinin bir parçası olarak
spaces.messages.thread.threadKey
değerini belirtin. Bir ileti dizisini başlatıyor veya yanıtlıyor olmanıza bağlı olarak,threadKey
için aşağıdaki değerleri kullanın:İleti dizisi başlatıyorsanız
threadKey
değerini rastgele bir dizeye ayarlayın ancak ileti dizisine bir yanıt yayınlamak için bu değeri not edin.Bir ileti dizisini yanıtlıyorsanız ileti dizisi başlatıldığında ayarlanan
threadKey
değerini belirtin. Örneğin, ilk mesajınMY-THREAD
kullandığı ileti dizisine yanıt yayınlamak içinMY-THREAD
değerini ayarlayın.
Belirtilen
threadKey
bulunamazsa ileti dizisi davranışını tanımlayın:Bir mesaj dizisini yanıtlayın veya yeni bir mesaj dizisi başlatın. Webhook URL'sine
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
parametresini ekleyin. Bu URL parametresinin iletilmesi, Chat'in belirtilenthreadKey
öğesini kullanarak mevcut bir ileti dizisini aramasına neden olur. İleti dizisi bulunursa ileti, söz konusu ileti dizisine yanıt olarak yayınlanır. Herhangi bir ileti dizisi bulunamazsa mesaj, söz konusuthreadKey
öğesine karşılık gelen yeni bir ileti dizisi başlatır.İleti dizisini yanıtlama veya hiçbir işlem yapma. Webhook URL'sine
messageReplyOption=REPLY_MESSAGE_OR_FAIL
parametresini ekleyin. Bu URL parametresinin iletilmesi, Chat'in belirtilenthreadKey
öğesini kullanarak mevcut bir ileti dizisini aramasına neden olur. İleti dizisi bulunursa ileti, söz konusu ileti dizisine yanıt olarak yayınlanır. Bunların hiçbiri bulunmazsa mesaj gönderilmez.
Daha fazla bilgi için
messageReplyOption
sayfasını inceleyin.
Aşağıdaki kod örneği bir ileti dizisini başlatır veya yanıt verir: