Alanlara kullanıcı, Google Grubu veya Google Chat uygulaması davet etme ya da ekleme

Bu kılavuzda, üyelik oluşturma olarak da bilinen alanlara kullanıcı, Google grubu veya Chat uygulaması davet etmek ya da eklemek için Google Chat API'nin membership kaynağında create yöntemini nasıl kullanacağınız açıklanmaktadır. Üyelik oluştururken belirtilen üyenin otomatik kabul politikası devre dışıysa 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 alana davet edilip edilmediğini, bir kısmının olup olmadığını ya da bir alanda mevcut olup olmadığı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 etkinleştirildiği ve yapılandırıldığı bir Google Cloud projesi Adımlar için Google Chat uygulaması oluşturma başlıklı makaleyi inceleyin.
  • Chat uygulaması için yetkilendirme yapılandırıldı. Üyelik oluşturmak için chat.memberships veya chat.memberships.app yetkilendirme kapsamıyla kullanıcı kimlik doğrulaması 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 etkinleştirildiği ve yapılandırıldığı bir Google Cloud projesi Adımlar için Google Chat uygulaması oluşturma başlıklı makaleyi inceleyin.
  • Chat uygulaması için yetkilendirme yapılandırıldı. Üyelik oluşturmak için chat.memberships veya chat.memberships.app yetkilendirme kapsamıyla kullanıcı kimlik doğrulaması gerekir.

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

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

  • chat.memberships yetkilendirme kapsamını belirtin.
  • membership kaynağında create yöntemini çağırın.
  • parent değerini, üyelik oluşturulacak alanın kaynak adı olarak belirleyin.
  • member değerini users/{user} olarak ayarlayın. Burada {user}, üyelik oluşturmak istediğiniz kişidir ve şunlardan biridir:
    • People API'deki kişinin kimliği. Örneğin, People API kişisi 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 adlı bir dosya oluşturun.
  2. Aşağıdaki kodu chat_membership_user_create.py bölümüne 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. Bu kodda, aşağıdakini değiştirin:

    • SPACE: Bir alan adı. Bu bilgiyi Chat API'deki spaces.list yönteminden veya bir alanın URL'sinden edinebilirsiniz.

    • USER: bir kullanıcı kimliği.

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

    python3 chat_membership_user_create.py
    

Node.js

  1. Çalışma dizininizde add-user-to-space.js adlı bir dosya oluşturun.
  2. Aşağıdaki kodu add-user-to-space.js bölümüne 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',
      ];
    
      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. Bu kodda, aşağıdakini değiştirin:

    • SPACE: Bir alan adıdır. Bu bilgiyi Chat API'deki spaces.list yönteminden veya bir alanın URL'sinden edinebilirsiniz.

    • USER: bir kullanıcı kimliği.

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

    node add-user-to-space.js
    

Chat API, oluşturulan kullanıcı üyeliğiyle ilgili ayrıntıların yer aldığı bir membership örneği döndürür.

Alanlara Google Grubu davet etme veya ekleme

Bir alana Google Grubu davet etmek veya bir Google Grubu eklemek için isteğinizde aşağıdaki bilgileri iletin:

  • chat.memberships yetkilendirme kapsamını belirtin.
  • membership kaynağında create yöntemini çağırın.
  • parent değerini, üyelik oluşturulacak alanın kaynak adı olarak belirleyin.
  • Üyelik oluşturmak istediğiniz grup kimliğinin {group} olduğu groupMember değerini groups/{group} olarak ayarlayın. Grubun kimliği Cloud Identity API kullanılarak alınabilir. Örneğin Cloud Identity API, groups/123456789 adlı bir grup döndürürse membership.groupMember.name değerini groups/123456789 olarak ayarlayın.

Google Grupları, grup sohbetine veya doğrudan mesaja değil, yalnızca adlandırılmış bir alana eklenebilir. Aşağıdaki örnekte, adlandırılmış bir alana bir grup eklenir:

Python

  1. Çalışma dizininizde chat_membership_group_create.py adlı bir dosya oluşturun.
  2. Aşağıdaki kodu chat_membership_group_create.py bölümüne 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 group 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 named space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Specify which group the membership is for.
            body = {
              'groupMember': {
                'name':'groups/GROUP',
              }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Bu kodda, aşağıdakini değiştirin:

    • SPACE: Bir alan adı. Bu bilgiyi Chat API'deki spaces.list yönteminden veya bir alanın URL'sinden edinebilirsiniz.

    • GROUP: Grup kimliği.

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

    python3 chat_membership_group_create.py
    

Node.js

  1. Çalışma dizininizde add-group-to-space.js adlı bir dosya oluşturun.
  2. Aşağıdaki kodu add-group-to-space.js bölümüne ekleyin:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the group to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addUserToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships',
      ];
    
      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: {groupMember: {name: 'groups/GROUP'}}
      });
    }
    
    addUserToSpace().then(console.log);
    
  3. Bu kodda, aşağıdakini değiştirin:

    • SPACE: Bir alan adıdır. Bu bilgiyi Chat API'deki spaces.list yönteminden veya bir alanın URL'sinden edinebilirsiniz.

    • GROUP: Grup kimliği.

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

    node add-group-to-space.js
    

Chat API, oluşturulan grup üyeliğiyle ilgili ayrıntıları 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 mesajlara 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 değerini, üyelik oluşturulacak alanın kaynak adı olarak belirleyin.
  • member öğesini users/app olarak ayarlayın. Bu takma ad, Chat API'yi çağıran uygulamayı temsil eder.

Aşağıdaki örnek, bir alana Chat uygulaması ekler:

Python

  1. Çalışma dizininizde chat_membership_app_create.py adlı bir dosya oluşturun.
  2. Aşağıdaki kodu chat_membership_app_create.py bölümüne 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 alanını bir alan adıyla değiştirin. Bu adı, Chat API'deki spaces.list yönteminden veya bir alanın URL'sinden öğrenebilirsiniz.

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

    python3 chat_membership_app_create.py
    

Node.js

  1. Çalışma dizininizde add-app-to-space.js adlı bir dosya oluşturun.
  2. Aşağıdaki kodu add-app-to-space.js bölümüne 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 alanını bir alan adıyla değiştirin. Bu adı, Chat API'deki spaces.list yönteminden veya bir alanın URL'sinden öğrenebilirsiniz.

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

    node add-app-to-space.js
    

Chat API, oluşturulan uygulama üyeliğiyle ilgili ayrıntıların yer aldığı bir membership örneği döndürür.