Bu sayfada, harici tetikleyicileri kullanarak Chat alanına eşzamansız mesajlar göndermek için webhook'un nasıl ayarlanacağı açıklanmaktadır. Örneğin, bir sunucu çöktüğünde Chat'te nöbetçi personeli bilgilendirecek bir izleme uygulaması yapılandırabilirsiniz. Chat uygulamasıyla eşzamanlı mesaj göndermek için Mesaj gönderme başlıklı makaleyi inceleyin.
Bu tür bir mimari tasarımda, iletişim tek yönlü olduğu için kullanıcılar webhook ile veya bağlı harici uygulamayla etkileşime giremez. Webhook'lar konuşma dili değildir. Kullanıcılar, kullanıcılara veya Chat uygulaması etkileşim etkinliklerine yanıt veremez ya da mesaj alamaz. Mesajlara yanıt vermek için webhook yerine bir Chat uygulaması oluşturun.
Webhook, teknik olarak bir Chat uygulaması değildir. Standart HTTP isteklerini kullanan webhook'lar, uygulamaları birbirine bağlar. Bu sayfada, konuyu basitleştirmek için Chat uygulaması olarak bahsedilmektedir. Her webhook yalnızca kayıtlı olduğu Chat alanında çalışır. Gelen webhook'lar doğrudan mesajlarda çalışır, ancak bu yalnızca tüm kullanıcılar için Chat uygulamaları etkin olduğunda geçerlidir. Google Workspace Marketplace'te webhook yayınlayamazsınız.
Aşağıdaki şemada, Chat'e bağlı bir webhook'un mimarisi gösterilmektedir:
Yukarıdaki şemada, bir Chat uygulaması aşağıdaki bilgi akışına sahiptir:
- Chat uygulama mantığı, harici üçüncü taraf hizmetlerinden (ör. proje yönetim sistemi veya bilet işlemleri aracı) bilgi alır.
- Chat uygulaması mantığı, bir web kancası URL'si kullanarak belirli bir Chat alanına mesaj gönderebilen bulut ya da şirket içi bir sistemde barındırılır.
- Kullanıcılar, ilgili Chat alanındaki 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ığı. Gerekirse kitaplığıpip
kullanarak 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üklenmiş 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 veriyor.
- Java 11 veya üzeri.
- 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 veriyor.
- Mevcut bir Chat alanı.
Webhook oluşturma
Webhook oluşturmak için webhook'u, mesaj almak istediğiniz Chat alanına 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ında, daha fazla genişlet okunu ve ardından Uygulamalar ve entegrasyonlar'ı tıklayın.
Webhook ekle'yi tıklayın.
Name (Ad) alanına
Quickstart Webhook
girin.Avatar URL (Avatar URL'si) alanına
https://developers.google.com/chat/images/chat-product-icon.png
girin.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 bir POST
isteği göndererek webhook'un kayıtlı olduğu alana bir mesaj gönderir. Chat API, Message
örneğiyle yanıt verir.
Webhook komut dosyası oluşturmayı öğrenmek için dil seçin:
Python
Çalışma dizininizde
quickstart.py
adında 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'siyle değiştirin.
Node.js
Çalışma dizininizde
index.js
adında 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'siyle değiştirin.
Java
Çalışma dizininizde
pom.xml
adında bir dosya oluşturun.pom.xml
ürününde 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
adında 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'siyle 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'siyle 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, kodu kaydettiğiniz alana bir mesaj gönderir.
Bir mesaj dizisi başlatma veya bir mesaj dizisini yanıtlama
Mesaj isteği gövdesinin bir parçası olarak
spaces.messages.thread.threadKey
değerini belirtin. Bir ileti dizisini başlatmanıza veya yanıtlamanıza bağlı olarakthreadKey
için aşağıdaki değerleri kullanın:Bir ileti dizisi başlatıyorsanız
threadKey
öğesini rastgele bir dizeye ayarlayın ancak ileti dizisine bir yanıt yayınlamak için bu değeri not edin.Bir ileti dizisine yanıt veriyorsanız ileti dizisi başlatıldığında ayarlanan
threadKey
değerini belirtin. Örneğin, ilk mesajınMY-THREAD
kullanıldığı ileti dizisine bir yanıt yayınlamak içinMY-THREAD
değerini ayarlayın.
Belirtilen
threadKey
bulunamazsa iş parçacığı davranışını tanımlayın:Bir mesaj dizisini yanıtlayın veya yeni bir mesaj dizisi başlatın.
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
parametresini webhook URL'sine ekleyin. Bu URL parametresinin iletilmesi, Chat'in belirtilenthreadKey
parametresini kullanarak mevcut bir mesaj dizisini aramasına neden olur. Böyle bir ad bulunursa mesaj, bu ileti dizisine yanıt olarak yayınlanır. Hiçbir ileti bulunmazsa mesaj, söz konusuthreadKey
öğesine karşılık gelen yeni bir ileti dizisi başlatır.Bir mesaj dizisini yanıtla veya hiçbir şey yapmayın.
messageReplyOption=REPLY_MESSAGE_OR_FAIL
parametresini webhook URL'sine ekleyin. Bu URL parametresinin iletilmesi, Chat'in belirtilenthreadKey
parametresini kullanarak mevcut bir mesaj dizisini aramasına neden olur. Böyle bir ad bulunursa mesaj, bu ileti dizisine yanıt olarak yayınlanır. Hiçbiri bulunmazsa mesaj gönderilmez.
Daha fazla bilgi için
messageReplyOption
sayfasına bakın.
Aşağıdaki kod örneği bir ileti dizisini başlatır veya bir ileti dizisini yanıtlar: