Bu kılavuzda, bir Chat uygulaması adına Google Chat REST API'ye erişmek için hizmet hesabı oluşturma ve kullanma süreci açıklanmaktadır. Öncelikle, hizmet hesabı oluşturma konusunda size yol gösterecektir. Ardından, Chat API ile kimlik doğrulaması yapmak için hizmet hesabını kullanan bir komut dosyasının nasıl yazılacağı ve bir Chat alanında nasıl mesaj yayınlanacağı gösterilmektedir.
Chat uygulamaları, Google Chat REST API'yi eşzamansız olarak çağırırken kimlik doğrulaması yapmak için hizmet hesaplarını kullanabilir. Böylece:
- Şu kişilere Google Chat'e
spaces.messages.create
ile mesaj gönderin:- Uzun süre çalışan bir arka plan işi çalışmayı tamamladığında kullanıcıları bilgilendirin.
- Kullanıcıları, bir sunucunun çevrimdışı olduğu konusunda uyarın.
- Bir müşteri destek ekibinden, yeni açılan bir müşteri
- Daha önce gönderilen iletileri
spaces.messages.update
ile şu şekilde güncelleyin:- Devam eden işlemin durumunu değiştirin.
- Görevin atandığı kişiyi veya son tarihi güncelleyin.
- Bir alandaki kullanıcıları
spaces.members.list
ile aşağıdaki şekilde listeleyin:- Bir alanda kimlerin olduğunu görün.
- Alan üyeliğinin ekipteki herkesi içerdiğini doğrulayın.
Bir hizmet hesabıyla kimlik doğrulandığında, Chat alanında veri almak veya işlem gerçekleştirmek için Chat uygulamalarının alana üyeliği olması gerekir. Örneğin, bir alanın üyelerini listelemek veya bir alanda mesaj oluşturmak için Chat uygulamasının alanın üyesi olması gerekir.
Chat uygulamanızın kullanıcı verilerine erişmesi veya kullanıcı adına işlem yapması gerekiyorsa bunun yerine kullanıcı olarak kimlik doğrulayın.
Alan yöneticisiyseniz bir uygulamanın hizmet hesabına, her kullanıcının izin vermesini gerektirmeden kullanıcılarınızın verilerine erişme yetkisi vermek için alan genelinde yetki verme izni verebilirsiniz. Alan genelinde yetkiyi yapılandırdıktan sonra kullanıcı hesabının kimliğine bürünmek için hizmet hesabınızı kullanarak API çağrıları yapabilirsiniz. Kimlik doğrulama için bir hizmet hesabı kullanılıyor olsa da, alan genelinde yetki bir kullanıcının kimliğine bürünür ve bu nedenle kullanıcı kimlik doğrulaması olarak kabul edilir. Kullanıcı kimlik doğrulaması gerektiren tüm işlevler için alan genelinde yetkiyi kullanabilirsiniz.
Chat uygulamalarının kimlik doğrulama işlemini ne zaman yapması gerektiği ve ne tür bir kimlik doğrulamasının kullanılacağı hakkında daha fazla bilgi edinmek için Chat API kimlik doğrulaması ve yetkilendirmesine genel bakıştaki Gerekli kimlik doğrulama türleri bölümüne göz atın.
Ön koşullar
Bu kılavuzda örneği çalıştırmak için aşağıdaki önkoşulları sağlamanız gerekir:
Python
- Python 3.6 veya sonraki sürümleri
- pip paket yönetimi aracı
Python için Google istemci kitaplıkları. Bu uygulamaları yüklemek için komut satırı arayüzünüz aşağıdaki komutu çalıştırın:
pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
Google Chat'e erişimi olan bir Google Workspace hesabı.
Chat API'nin etkinleştirildiği bir Google Cloud projesi. Proje oluşturmak ve API'yi etkinleştirmek için Proje oluşturma ve API'yi etkinleştirme başlıklı makaleyi inceleyin.
Chat alanında üyeliği olan yayınlanmış bir Chat uygulaması:
- Chat uygulaması oluşturup yayınlamak için Cloud Functions ile Google Chat uygulaması oluşturma başlıklı makaleyi inceleyin.
- Chat alanına Chat uygulaması eklemek için Google Chat'te alanlara veya görüşmelere uygulama ekleme başlıklı makaleyi inceleyin.
1. Adım: Google Cloud Console'da bir hizmet hesabı oluşturun
Chat uygulamanızın Google API'lerine erişmek için kullanacağı bir hizmet hesabı oluşturun.
Hizmet hesabı oluşturma:
Hizmet hesabı oluşturmak için aşağıdaki adımları uygulayın:
- Google Cloud Console'da Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.
- Hizmet hesabı oluştur'u tıklayın.
- Hizmet hesabı ayrıntılarını girin ve ardından Oluştur ve devam et'i tıklayın.
- İsteğe bağlı: Google Cloud projenizin kaynaklarına erişim izni vermek için hizmet hesabınıza roller atayın. Daha fazla bilgi için Kaynaklara erişim verme, erişimi değiştirme ve iptal etme başlıklı makaleye bakın.
- Devam'ı tıklayın.
- İsteğe bağlı: Bu hizmet hesabıyla işlem yönetebilecek ve gerçekleştirebilecek kullanıcı veya gruplar girin. Daha fazla bilgi için Hizmet hesabı kimliğine bürünme işlemini yönetme başlıklı makaleye bakın.
- Bitti'yi tıklayın. Hizmet hesabının e-posta adresini not edin.
Hizmet hesabı, hizmet hesabı sayfasında görünür. Ardından, hizmet hesabı için özel bir anahtar oluşturun.
Özel anahtar oluşturun
Hizmet hesabı için özel anahtar oluşturmak üzere aşağıdaki adımları uygulayın:
- Google Cloud Console'da Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.
- Hizmet hesabınızı seçin.
- Anahtarlar > Anahtar ekle > Yeni anahtar oluştur'u tıklayın.
- JSON'yi seçip Oluştur'u tıklayın.
Yeni ortak/özel anahtar çiftiniz oluşturulur ve yeni bir dosya olarak makinenize indirilir. Bu dosya, bu anahtarın tek kopyasıdır. Anahtarınızı güvenli şekilde depolama hakkında bilgi edinmek için Hizmet hesabı anahtarlarını yönetme başlıklı makaleyi inceleyin.
- Kapat'ı tıklayın.
Hizmet hesapları hakkında daha fazla bilgi için Google Cloud IAM belgelerindeki hizmet hesapları bölümünü inceleyin.
2. Adım: Chat REST API ile kimlik doğrulaması yapmak için hizmet hesabını kullanan bir komut dosyası yazın
Aşağıdaki kod, bir hizmet hesabı kullanarak Chat REST API ile kimlik doğrular ve bir Chat alanında mesaj yayınlar:
Python
- Çalışma dizininizde,
chat_app_auth.py
adlı bir dosya oluşturun. chat_app_auth.py
alanına aşağıdaki kodu ekleyin:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'service_account.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE_NAME with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE_NAME', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
Kodda,
SPACE_NAME
değerini bir alan adıyla değiştirin. Bu adı, Chat API'dekispaces.list
yönteminden veya alan URL'sinden alabilirsiniz.
3. Adım: Tam örneği çalıştırın
Çalışma dizininizde örneği oluşturun ve çalıştırın:
Python
python3 chat_app_auth.py
Komut dosyanız, Chat REST API'ye kimlik doğrulaması yapılmış bir istek gönderir. Yanıt, bir Chat alanında Chat uygulaması olarak mesaj yayınlayarak yanıt verir.
Örnekle ilgili sorunları giderme
Bu bölümde, bu örneği çalıştırmaya çalışırken karşılaşabileceğiniz yaygın sorunlar açıklanmaktadır.
Bu uygulamayı kullanma izniniz yok
chat_app_auth.py
uygulamasını çalıştırırken bir hata mesajı alabilirsiniz:
<HttpError 403 when requesting https://chat.googleapis.com/v1/spaces/{space}/messages?alt=json returned "You are not permitted to use this app". Details: "You are not permitted to use this app">
Bu hata mesajı, Chat uygulamasının mesaj göndermeye çalıştığı Chat alanında Chat mesajı yayınlama izni olmadığı anlamına gelir.
Hatayı düzeltmek için chat_app_auth.py
uygulamasında belirtilen Chat uygulamasını Chat alanına ekleyin.
Sonraki adım
Chat API referans belgelerini inceleyerek Chat API'nin başka neler yapabileceğini öğrenin.