Bu sayfada, Pub/Sub kullanarak Chat uygulaması oluşturma açıklanmaktadır. Chat uygulamasının bu tür bir mimarisi, kuruluşunuzda Chat'in Chat uygulamanıza mesaj göndermesini engelleyebilecek bir güvenlik duvarı varsa veya Chat uygulaması Google Workspace Events API'yi kullanıyorsa faydalıdır. Ancak bu mimari, bu sohbet uygulamalarının yalnızca asenkron mesajlar gönderebilmesi ve alabilmesi nedeniyle aşağıdaki sınırlamalara sahiptir:
- İletilerde iletişim kutuları kullanılamaz. Bunun yerine kart mesajı kullanın.
- Tek tek kartlar, senkronize yanıtla güncellenemez. Bunun yerine,
patch
yöntemini çağırarak mesajın tamamını güncelleyin.
Aşağıdaki şemada, Pub/Sub ile oluşturulmuş bir sohbet uygulamasının mimarisi gösterilmektedir:
Önceki şemada, Pub/Sub Chat uygulamasıyla etkileşimde bulunan bir kullanıcının bilgi akışı şu şekildedir:
Bir kullanıcı, Chat'te doğrudan mesaj veya Chat alanı üzerinden bir Chat uygulamasına mesaj gönderdiğinde ya da Chat uygulamasının etkin aboneliğinin olduğu bir Chat alanında etkinlik gerçekleştiğinde
Chat, mesajı bir Pub/Sub konusuna gönderir.
Chat uygulaması mantığını içeren bir bulut veya şirket içi sistem olan uygulama sunucusu, mesajı güvenlik duvarı üzerinden almak için Pub/Sub konusuna abone olur.
İsteğe bağlı olarak, Chat uygulaması mesajları eşzamansız olarak yayınlamak veya başka işlemler gerçekleştirmek için Chat API'yi çağırabilir.
Ön koşullar
Java
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Faturalandırmanın etkin olduğu bir Google Cloud projesi. Mevcut bir projede faturalandırmanın etkinleştirildiğini kontrol etmek için Projelerinizin faturalandırma durumunu doğrulama bölümüne bakın. Proje oluşturma ve faturalandırmayı ayarlama hakkında bilgi edinmek için Google Cloud projesi oluşturma başlıklı makaleyi inceleyin.
- Java 11 veya üzeri
- Maven paket yönetimi aracı
Python
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Faturalandırmanın etkin olduğu bir Google Cloud projesi. Mevcut bir projede faturalandırmanın etkinleştirildiğini kontrol etmek için Projelerinizin faturalandırma durumunu doğrulama bölümüne bakın. Proje oluşturma ve faturalandırmayı ayarlama hakkında bilgi edinmek için Google Cloud projesi oluşturma başlıklı makaleyi inceleyin.
- Python 3.6 veya sonraki sürümler
- pip paket yönetim aracı
Node.js
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Faturalandırmanın etkin olduğu bir Google Cloud projesi. Mevcut bir projede faturalandırmanın etkinleştirildiğini kontrol etmek için Projelerinizin faturalandırma durumunu doğrulama bölümüne bakın. Proje oluşturma ve faturalandırmayı ayarlama hakkında bilgi edinmek için Google Cloud projesi oluşturma başlıklı makaleyi inceleyin.
- Node.js 14 veya daha yeni bir sürüm
- npm paket yönetim aracı
-
Başlatılmış bir Node.js projesi. Yeni bir projeyi başlatmak için yeni bir klasör oluşturup bu klasöre geçin, ardından komut satırı arayüzünüzde aşağıdaki komutu çalıştırın:
npm init
Ortamı ayarlama
Google API'lerini kullanmadan önce bir Google Cloud projesinde etkinleştirmeniz gerekir. Tek bir Google Cloud projesinde bir veya daha fazla API'yi etkinleştirebilirsiniz.Google Cloud Console'da Google Chat API ve Pub/Sub API'yi etkinleştirin.
Pub/Sub'ı ayarlama
Chat API'nin mesaj gönderebileceği bir Pub/Sub konusu oluşturun. Her Chat uygulaması için tek bir konu kullanmanızı öneririz.
Aşağıdaki hizmet hesabına Pub/Sub Yayıncısı rolünü atayarak konuya Chat'in yayınlama izni verin:
chat-api-push@system.gserviceaccount.com
Chat uygulaması için Pub/Sub ve Chat ile yetkilendirmek üzere bir hizmet hesabı oluşturun ve özel anahtar dosyasını çalışma dizininize kaydedin.
Konu için çekme aboneliği oluşturun.
Daha önce oluşturduğunuz hizmet hesabı için abonelikte Pub/Sub Abonesi Rolü'nü atayın.
Senaryoyu yazma
Java
Bir CLI'da hizmet hesabı kimlik bilgilerini sağlayın:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
Bir CLI'da Google Cloud proje kimliğini girin:
export PROJECT_ID=PROJECT_ID
Bir CLI'de, daha önce oluşturduğunuz Pub/Sub aboneliğinin abonelik kimliğini sağlayın:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
Çalışma dizininizde
pom.xml
adlı bir dosya oluşturun.pom.xml
dosyasına aşağıdaki kodu yapıştırın:Çalışma dizininizde
src/main/java
dizin yapısını oluşturun.src/main/java
dizinindeMain.java
adlı bir dosya oluşturun.Main.java
bölümüne aşağıdaki kodu yapıştırın:
Python
Bir CLI'da hizmet hesabı kimlik bilgilerini sağlayın:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
Bir CLI'da Google Cloud proje kimliğini girin:
export PROJECT_ID=PROJECT_ID
Bir CLI'de, daha önce oluşturduğunuz Pub/Sub aboneliğinin abonelik kimliğini sağlayın:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
Çalışma dizininizde
requirements.txt
adlı bir dosya oluşturun.requirements.txt
dosyasına aşağıdaki kodu yapıştırın:Çalışma dizininizde
app.py
adlı bir dosya oluşturun.app.py
bölümüne aşağıdaki kodu yapıştırın:
Node.js
Bir CLI'da hizmet hesabı kimlik bilgilerini sağlayın:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
Bir CLI'da Google Cloud proje kimliğini girin:
export PROJECT_ID=PROJECT_ID
Bir CLI'de, daha önce oluşturduğunuz Pub/Sub aboneliğinin abonelik kimliğini sağlayın:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
Çalışma dizininizde
package.json
adlı bir dosya oluşturun.package.json
dosyasına aşağıdaki kodu yapıştırın:Çalışma dizininizde
index.js
adlı bir dosya oluşturun.index.js
bölümüne aşağıdaki kodu yapıştırın:
Uygulamayı Chat'te yayınlama
Google Cloud Console'da Menü > API'ler ve Hizmetler > Etkin API'ler ve Hizmetler > Google Chat API > Yapılandırma'ya gidin.
Pub/Sub için Chat uygulamasını yapılandırın:
- Uygulama adı alanına
Quickstart App
yazın. - Avatar URL'si bölümüne
https://developers.google.com/chat/images/quickstart-app-avatar.png
girin. - Açıklama bölümüne
Quickstart app
girin. - İşlevsellik bölümünde Alanlara ve grup görüşmelerine katılma'yı seçin.
- Bağlantı ayarları bölümünde Cloud Pub/Sub'ı seçin ve daha önce oluşturduğunuz Pub/Sub konusunun adını yapıştırın.
- Görünürlük bölümünde, alanınızdaki Bu Google Chat uygulamasını belirli kişiler ve gruplar için kullanılabilir yap'ı seçip e-posta adresinizi girin.
- Günlükler bölümünde Günlük hatalarını Logging'e seçeneğini belirleyin.
- Uygulama adı alanına
Kaydet'i tıklayın.
Uygulama, Chat'teki mesajları almaya ve yanıtlamaya hazırdır.
Komut dosyasını çalıştırma
Bir CLI'de çalışma dizininize geçin ve komut dosyasını çalıştırın:
Java
mvn compile exec:java -Dexec.mainClass=Main
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
Kodu çalıştırdığınızda uygulama, Pub/Sub konusunda yayınlanan mesajları dinlemeye başlar.
Chat uygulamanızı test etme
Chat uygulamanızı test etmek için Chat uygulamasıyla doğrudan mesajlaşma alanı açıp mesaj gönderin:
Kendinizi güvenilir test kullanıcıları arasına eklerken sağladığınız Google Workspace hesabını kullanarak Google Chat'i açın.
- Yeni sohbet'i tıklayın.
- 1 veya daha fazla kişi ekle alanına Chat uygulamanızın adını yazın.
Sonuçlardan Chat uygulamanızı seçin. Doğrudan mesaj açılır.
- Uygulamayla yeni doğrudan mesajda
Hello
yazıpenter
tuşuna basın.
Güvenilir test kullanıcıları ekleme ve etkileşimli özellikleri test etme hakkında daha fazla bilgi edinmek için Google Chat uygulamaları için etkileşimli özellikleri test etme başlıklı makaleyi inceleyin.
Sorun giderme
Bir Google Chat uygulaması veya kartı hata döndürdüğünde Chat arayüzünde "Bir hata oluştu" mesajı gösterilir. veya "İsteğiniz işlenemiyor." Bazen Chat kullanıcı arayüzünde hata mesajı gösterilmez ancak Chat uygulaması veya kartı beklenmedik bir sonuç üretir. Örneğin, kart mesajı görünmeyebilir.
Chat kullanıcı arayüzünde hata mesajı gösterilmese de Chat uygulamaları için hata günlüğü kaydı etkinleştirildiğinde hataları düzeltmenize yardımcı olacak açıklayıcı hata mesajları ve günlük verileri kullanılabilir. Hataları görüntüleme, hataları ayıklama ve düzeltme konusunda yardım için Google Chat hatalarını giderme ve düzeltme başlıklı makaleyi inceleyin.
Temizleme
Bu eğitimde kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini önlemek istiyorsanız Cloud projesini silmenizi öneririz.
- Google Cloud Console'da Kaynakları yönetin sayfasına gidin. Şunu tıklayın: Menü > IAM ve Yönetici > Kaynakları Yönetin.
- Proje listesinde, silmek istediğiniz projeyi seçin ve Sil'i tıklayın.
- İletişim kutusunda proje kimliğini yazın ve ardından projeyi silmek için Kapat'ı tıklayın.
İlgili konular
Chat uygulamanıza daha fazla özellik eklemek için aşağıdaki makalelere göz atın: