Chat uygulaması olarak kimlik doğrulama

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

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:

  1. Google Cloud Console'da Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.

    Hizmet Hesapları'na git

  2. Hizmet hesabı oluştur'u tıklayın.
  3. Hizmet hesabı ayrıntılarını girin ve ardından Oluştur ve devam et'i tıklayın.
  4. İ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.
  5. Devam'ı tıklayın.
  6. İ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.
  7. 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:

  1. Google Cloud Console'da Menü > IAM ve Yönetici > Hizmet Hesapları'na gidin.

    Hizmet Hesapları'na git

  2. Hizmet hesabınızı seçin.
  3. Anahtarlar > Anahtar ekle > Yeni anahtar oluştur'u tıklayın.
  4. 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.

  5. 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

  1. Çalışma dizininizde, chat_app_auth.py adlı bir dosya oluşturun.
  2. 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)
    
  3. Kodda, SPACE_NAME değerini bir alan adıyla değiştirin. Bu adı, Chat API'deki spaces.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.