Bir alana kullanıcı veya Google Chat uygulaması davet etme ya da ekleme

Bu kılavuzda, üyelik oluşturma olarak da bilinen bir alana kullanıcı veya Chat uygulaması davet etmek ya da eklemek için Google Chat API'nin membership kaynağındaki create yönteminin nasıl kullanılacağı açıklanmaktadır. Üyelik oluştururken, belirtilen üyenin otomatik kabul politikası devre dışıysa üye davet edilir ve katılmadan önce alan davetini kabul etmesi gerekir. Aksi takdirde, üyelik oluşturulduğunda üye doğrudan belirtilen alana eklenir.

Membership kaynağı, bir insan kullanıcının veya Google Chat uygulamasının bir alana davet edildiğini, bir alanın bir parçası olduğunu ya da bir alanda bulunmadığını belirtir.

Ön koşullar

Python

  • Python 3.6 veya sonraki sürümler
  • pip paket yönetimi aracı
  • Python için en yeni Google istemci kitaplıkları. Bunları yüklemek veya güncellemek için komut satırı arayüzünüzde aşağıdaki komutu çalıştırın:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Google Chat API'nin etkin ve yapılandırılmış olduğu bir Google Cloud projesi. Adımlar için Google Chat uygulaması oluşturma başlıklı makaleye göz atın.
  • Yetkilendirme, Chat uygulaması için yapılandırıldı. Üyelik oluşturmak için chat.memberships veya chat.memberships.app yetkilendirme kapsamıyla Kullanıcı kimlik doğrulaması yapılması gerekir.

Node.js

  • Node.js ve npm
  • Node.js için en yeni Google istemci kitaplıkları. Bunları yüklemek için komut satırı arayüzünüzde aşağıdaki komutu çalıştırın:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Google Chat API'nin etkin ve yapılandırılmış olduğu bir Google Cloud projesi. Adımlar için Google Chat uygulaması oluşturma başlıklı makaleye göz atın.
  • Yetkilendirme, Chat uygulaması için yapılandırıldı. Üyelik oluşturmak için chat.memberships veya chat.memberships.app yetkilendirme kapsamıyla Kullanıcı kimlik doğrulaması yapılması gerekir.

Bir alana kullanıcı davet etme veya kullanıcı ekleme

Bir alana kullanıcı davet etmek veya kullanıcı eklemek için isteğinizde aşağıdakileri iletin:

  • chat.memberships yetkilendirme kapsamını belirtin.
  • membership kaynağında create yöntemini çağırın.
  • parent öğesini, üyelik oluşturulacak alanın kaynak adı olarak ayarlayın.
  • member öğesini users/{user} olarak ayarlayın. Burada {user}, üyeliğini oluşturmak istediğiniz kullanıcı olmalıdır ve şunlardan biri olmalıdır:
    • People API'deki kişi kimliği. Örneğin People API person resourceName, people/123456789 ise membership.member.name değerini users/123456789 olarak ayarlayın.
    • Directory API'deki kullanıcının kimliği.
    • Kullanıcının e-posta adresi. Örneğin, users/222larabrown@gmail.com veya users/larabrown@cymbalgroup.com. Kullanıcı bir Google Hesabı kullanıyorsa veya farklı bir Google Workspace kuruluşuna aitse kullanıcının e-posta adresini kullanmanız gerekir.

Aşağıdaki örnekte bir alana kullanıcı eklenir:

Python

  1. Çalışma dizininizde chat_membership_user_create.py adında bir dosya oluşturun.
  2. chat_membership_user_create.py içine şu kodu ekleyin:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds a user to a Chat space by creating a membership.
        '''
    
        # Authenticate with Google Workspace
        # and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file(
                    'client_secrets.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().members().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Specify which user the membership is for.
            body = {
              'member': {
                'name':'users/USER',
                'type': 'HUMAN'
              }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Kodda aşağıdakileri değiştirin:

    • SPACE: Chat API'deki spaces.list yönteminden veya alanın URL'sinden edinebileceğiniz bir alan adıdır.

    • USER: Kullanıcı kimliği.

  4. Çalışma dizininizde örneği derleyip çalıştırın:

    python3 chat_membership_user_create.py
    

Node.js

  1. Çalışma dizininizde add-user-to-space.js adında bir dosya oluşturun.
  2. add-user-to-space.js içine şu kodu ekleyin:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the user to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addUserToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships.app',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {member: {name: 'users/USER', type: 'HUMAN'}}
      });
    }
    
    addUserToSpace().then(console.log);
    
  3. Kodda aşağıdakileri değiştirin:

    • SPACE: Chat API'deki spaces.list yönteminden veya alanın URL'sinden edinebileceğiniz bir alan adıdır.

    • USER: Kullanıcı kimliği.

  4. Çalışma dizininizde örneği çalıştırın:

    node add-user-to-space.js
    

Chat API, oluşturulan üyeliğin ayrıntılarını içeren bir membership örneği döndürür.

Alanlara Chat uygulaması ekleme

Bir Chat uygulaması, bir alana üye olarak başka bir uygulama ekleyemez. Bir alana veya iki gerçek kullanıcı arasındaki doğrudan mesaja Chat uygulaması eklemek için isteğinizde aşağıdakileri iletin:

  • chat.memberships.app yetkilendirme kapsamını belirtin.
  • membership kaynağında create yöntemini çağırın.
  • parent öğesini, üyelik oluşturulacak alanın kaynak adı olarak ayarlayın.
  • member öğesini users/app olarak ayarlayın. Bu takma ad, Chat API'yi çağıran uygulamayı temsil eder.

Aşağıdaki örnekte, bir alana Chat uygulaması eklenir:

Python

  1. Çalışma dizininizde chat_membership_app_create.py adında bir dosya oluşturun.
  2. chat_membership_app_create.py içine şu kodu ekleyin:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.memberships.app"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds the Chat app to a Chat space.
        '''
    
        # Authenticate with Google Workspace
        # and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file(
                    'client_secrets.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().members().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Set the Chat app as the entity that gets added to the space.
            # 'app' is an alias for the Chat app calling the API.
            body = {
                'member': {
                  'name':'users/app',
                  'type': 'BOT'
                }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Kodda, SPACE değerini Chat API'deki spaces.list yönteminden veya alanın URL'sinden alabileceğiniz bir alan adıyla değiştirin.

  4. Çalışma dizininizde örneği derleyip çalıştırın:

    python3 chat_membership_app_create.py
    

Node.js

  1. Çalışma dizininizde add-app-to-space.js adında bir dosya oluşturun.
  2. add-app-to-space.js içine şu kodu ekleyin:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the app to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addAppToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships.app',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {member: {name: 'users/app', type: 'BOT'}}
      });
    }
    
    addAppToSpace().then(console.log);
    
  3. Kodda, SPACE değerini Chat API'deki spaces.list yönteminden veya alanın URL'sinden alabileceğiniz bir alan adıyla değiştirin.

  4. Çalışma dizininizde örneği çalıştırın:

    node add-app-to-space.js
    

Chat API, oluşturulan üyeliğin ayrıntılarını içeren bir membership örneği döndürür.