Gelen webhook'lar, Google Chat'e Chat uygulaması olmayan uygulamalardan eşzamansız mesajlar göndermenizi sağlar. Örneğin, bir sunucu kapandığında Google Chat'te görevli çalışanları bilgilendirmek için bir izleme uygulaması yapılandırabilirsiniz.
Chat uygulamasında, Chat alanındaki bir mesajı eşzamansız olarak göndermek, güncellemek veya silmek için Mesaj oluşturma, okuma, güncelleme, silme başlıklı makaleyi inceleyin.
Ön koşullar
Bu kılavuzdaki örneği çalıştırmak için aşağıdakilere ihtiyacınız vardır:
Python
- Python 3.10.7 veya sonraki sürümler.
- İnternete ve web tarayıcısına erişim.
- Google Chat'e erişimi olan bir Google Workspace hesabı.
- Mevcut bir Google Chat alanı.
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
Node.js
- Node.js ve npm yüklendi.
- İnternete ve web tarayıcısına erişim.
- Google Chat'e erişimi olan bir Google Workspace hesabı.
- Mevcut bir Google Chat alanı.
Apps Komut Dosyası
- İnternete ve web tarayıcısına erişim.
- Google Chat'e erişimi olan bir Google Workspace hesabı.
- Mevcut bir Google Chat alanı.
Java
- Java 11 veya sonraki bir sürüm.
- Apache Maven
- İnternete ve web tarayıcısına erişim.
- Google Chat'e erişimi olan bir Google Workspace hesabı.
- Mevcut bir Google Chat alanı.
Webhook oluşturma
Bir webhook oluşturmak için, mesajı almak istediğiniz Google Chat alanına kaydedin ve ardından mesaj gönderen bir komut dosyası yazın.
1. Adım: Gelen webhook'u kaydedin
- Bir web tarayıcısında Google Chat'i açın.
- Webhook eklemek istediğiniz alana gidin.
- En üstte, alan başlığının yanındaki Aşağı Ok'u > Uygulamalar ve entegrasyonlar'ı tıklayın.
- Webhook'ları yönet'i tıklayın.
- Bu alanda zaten başka webhook'lar varsa Add another (Başka bir tane ekle) seçeneğini tıklayın. Aksi takdirde bu adımı atlayın.
- Name (Ad) için "Quickstart Webhook" yazın.
- Avatar URL'si için
https://developers.google.com/chat/images/chat-product-icon.png
girin. - KAYDET'i tıklayın.
- Tüm webhook URL'sini kopyalamak için Kopyala'yı tıklayın.
- Gelen webhook'lar iletişim kutusunu kapatmak için kutunun dışını tıklayın.
2. Adım: Webhook komut dosyasını yazın
Örnek webhook komut dosyası, webhook URL'sine bir mesaj oluştur isteği POST vererek webhook'un kaydedildiği alana bir mesaj gönderir. Google Chat API, Message
örneğiyle yanıt verir.
Webhook komut dosyasının nasıl oluşturulacağıyla ilgili talimatlar için aşağıdan bir dil seçin:
Python
Çalışma dizininizde,
quickstart.py
adlı bir dosya oluşturun.Aşağıdaki kodu kopyalayıp
quickstart.py
bölümüne yapıştırın:url
değişkeninin değerini, 1. Adım'da kopyaladığınız webhook URL'si ile değiştirin: Gelen webhook'u kaydedin.
Node.js
Çalışma dizininizde,
index.js
adlı bir dosya oluşturun.Aşağıdaki kodu kopyalayıp
index.js
bölümüne yapıştırın:webhookURL
değişkeninin değerini, 1. Adım'da kopyaladığınız webhook URL'si ile değiştirin: Gelen webhook'u kaydedin.
Apps Komut Dosyası
Apps Komut Dosyası sayfasına gidin.
Yeni Proje'yi tıklayın
Aşağıdaki kodu kopyalayıp yapıştırın:
url
değişkeninin değerini, 1. Adım'da kopyaladığınız webhook URL'si ile değiştirin: Gelen webhook'u kaydedin.
Java
Çalışma dizininizde,
pom.xml
adlı bir dosya oluşturun.Aşağıdaki metni kopyalayıp
pom.xml
bölümüne yapıştırın:Çalışma dizininizde aşağıdaki dizin yapısını (
src/main/java
) oluşturun.src/main/java
dizinindeApp.java
adlı bir dosya oluşturun.Aşağıdaki kodu kopyalayıp
App.java
bölümüne yapıştırın:URL
değişkeninin değerini, 1. Adım'da kopyaladığınız webhook URL'si ile değiştirin: Gelen webhook'u kaydedin.
3. Adım: Webhook komut dosyasını çalıştırın
KSA'da çalışma dizininizden aşağıdaki komutu çalıştırarak örneği çalıştırın:
Python
python3 quickstart.py
Node.js
node index.js
Apps Komut Dosyası
- Çalıştır'ı tıklayın.
Java
mvn compile exec:java -Dexec.mainClass=App
Örnek kodu çalıştırdığınızda webhook, kodu kaydettiğiniz alana bir mesaj gönderir.
Mesaj dizisi başlatma veya mesaj dizisini yanıtlama
Webhook URL'sine threadKey
parametresini ekleyerek bir ileti dizisi başlatabilir veya ileti dizisini yanıtlayabilirsiniz. Her threadKey
, onu ayarlayan uygulamaya özeldir. İki farklı Chat uygulaması veya webhook'lar aynı threadKey
değerine ayarlanırsa iki farklı ileti dizisi başlar.
Mesaj dizisi başlatma
Webhook içeren bir ileti dizisinin ilk mesajını yayınlamak için threadKey
ve messageReplyOption
parametrelerini webhook URL'sine ekleyin. threadKey
öğesini rastgele bir dize olarak ayarlayın ancak bunun ne olduğunu unutmayın. İleti dizisine bir yanıt göndermek için bunu tekrar belirtmeniz gerekir.
https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?threadKey=ARBITRARY_STRING&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
Mesaj dizisine yanıt verme
Mevcut bir mesaj dizisine mesaj göndermek için threadKey
ve messageReplyOption
parametrelerini, mesaj dizisini başlatmak amacıyla kullanılan değere ayarlanmış webhook URL'sine ekleyin. Örneğin, aşağıdaki URL'ye bir ileti gönderdiğinizde threadKey
olan MY-THREAD
ileti dizisine messageReplyOption
, REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
gönderilir:
https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?threadKey=MY-THREAD&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
Sınırlamalar ve dikkat edilmesi gereken noktalar
Webhook'ları yapılandırırken bu sınırları ve dikkat edilmesi gereken noktaları not alın:
Her webhook yalnızca kayıtlı olduğu Chat alanında çalışır.
Google Workspace Marketplace'te webhook yayınlayamazsınız.
Webhook'lar birbiriyle iç içe değildir. Kullanıcılar veya etkinlikler Google Chat'ten yanıt alamaz ya da alamaz.
Alanınızda yalnızca belirli kuruluş birimleri Chat uygulamaları etkinse gelen web kancaları aşağıdaki hatayı döndürür:
{ "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } }
Gelen webhook'lar doğrudan mesajlarda çalışır, ancak bu yalnızca tüm kullanıcılar Chat uygulamalarını etkinleştirdiğinde gerçekleşir.
Webhook'ları yönet özelliği yalnızca bir web tarayıcısından kullanılabildiğinden, webhook'ların Chat web uygulamasından ayarlanması gerekir. Webhook'lar, Chat mobil uygulamasından yapılandırılamaz.