İlk üyelerin bulunduğu bir alan oluşturma

Bu kılavuzda, Google Chat alanı oluşturmak için Google Chat API'nin Space kaynağında setup yönteminin nasıl kullanılacağı açıklanmaktadır. Alan oluşturulduğunda bir alan oluşturulur ve belirli kullanıcılar alana eklenir.

Space kaynağı, kullanıcıların ve Chat uygulamalarının mesaj gönderebileceği, dosya paylaşabileceği ve ortak çalışma yapabileceği bir yeri temsil eder. Birkaç alan türü vardır:

  • Doğrudan mesajlar (DM'ler), iki kullanıcı veya bir kullanıcı ile bir Chat uygulaması arasındaki görüşmelerdir.
  • Grup sohbetleri, üç veya daha fazla kullanıcı ile Chat uygulamaları arasındaki görüşmelerdir.
  • Adlandırılmış alanlar, kullanıcıların mesaj gönderdiği, dosya paylaştığı ve ortak çalıştığı kalıcı yerlerdir.

Alan oluştururken aşağıdakileri göz önünde bulundurun:

  • Arayan (kimliği doğrulanmış) kullanıcı, alana otomatik olarak eklenir. Böylece, istekte kullanıcının üyeliğini belirtmeniz gerekmez.
  • Doğrudan mesaj (DM) oluştururken iki kullanıcı arasında bir DM varsa DM döndürülür. Aksi takdirde bir DM oluşturulur.
  • Grup sohbeti oluşturulurken, istekte sağlanan üyeliklerden hiçbiri grup sohbetine başarıyla eklenmemişse (örneğin, izin sorunu) boş bir grup sohbeti (yalnızca arayan kullanıcı dahil) oluşturulabilir.
  • Mesaj dizisi halinde yanıtlar içeren alanlar oluşturamaz veya Google Workspace hesabınızın dışından kullanıcı ekleyemezsiniz.
  • İstekte sağlanan yinelenen üyelikler (arayan kullanıcı dahil) istek hatasına neden olmak yerine filtrelenir.

Ö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ı. Alan ayarlamak için chat.spaces.create veya chat.spaces 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ı. Alan oluşturmak için chat.spaces.create veya chat.spaces yetkilendirme kapsamıyla kullanıcı kimlik doğrulaması gerekir.

Alan oluşturma

Alan oluşturmak için isteğinizde aşağıdakileri iletin:

  • chat.spaces.create veya chat.spaces yetkilendirme kapsamını belirtin.
  • Space kaynağında setup yöntemini çağırın.
  • Bir gerçek kullanıcıyı alan üyesi olarak eklemek için users/{user} değerini belirtin. Burada {user}, People API'deki person için {person_id} veya Directory API'deki user kimliğidir. Örneğin, People API kullanıcısı resourceName people/123456789 ise users/123456789 üyesi bir üyeliği member.name olarak ekleyerek kullanıcıyı alana ekleyebilirsiniz.
  • Bir grubu alan üyesi olarak eklemek için groups/{group} değerini belirtin. Burada {group}, üyelik oluşturmak istediğiniz grup kimliğidir. 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 DM'ye değil, yalnızca adlandırılmış bir alana eklenebilir.
  • Arayan kullanıcı ile başka bir gerçek kullanıcı arasında DM oluşturmak için isteğinizde gerçek kullanıcının üyeliğini belirtin.
  • Arayan kullanıcı ile arama uygulaması arasında bir DM oluşturmak için Space.singleUserBotDm öğesini true olarak ayarlayın ve üyelik belirtmeyin. Bu yöntemi yalnızca arama uygulamasıyla bir DM ayarlamak için kullanabilirsiniz. Arama uygulamasını bir alanın üyesi olarak veya iki kullanıcı arasındaki mevcut bir DM'yi eklemek için Üyelik oluşturma bölümüne bakın.

Aşağıdaki örnekte, adlandırılmış alan ve bir grup ile üç gerçek kullanıcı (kimliği kimliği doğrulanmış kullanıcı ve belirtilen diğer iki kullanıcı dahil) için alana üyelikler oluşturulmaktadır.

Python

  1. Çalışma dizininizde chat_space_setup.py adlı bir dosya oluşturun.
  2. Aşağıdaki kodu chat_space_setup.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.spaces.create"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then sets up a Chat space by creating a space and adding members.
        '''
    
        # 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().setup(
    
          # Details about the space to set up.
          body = {
    
            # Attributes of the space to set up, like space type and display name.
            'space': {
    
                # To set up a named space, set spaceType to SPACE.
                'spaceType': 'SPACE',
    
                # The user-visible name of the space
                'displayName': 'API-setup'
            },
    
            # The users and groups to add to the space.
            #
            # The authenticated user is automatically added to the space,
            # and doesn't need to be specified in the memberships array.
            'memberships': [
                {
                  'member': {
                    'name':'users/123456789',
                    'type': 'HUMAN'
                  }
                },
                {
                  'member': {
                    'name':'users/987654321',
                    'type': 'HUMAN'
                  }
                },
                {
                  'groupMember': {
                    'name': 'groups/11223344'
                  }
                }
            ]
          }
    
          ).execute()
    
        # Prints details about the created space.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Çalışma dizininizde örneği derleyin ve çalıştırın:

    python3 chat_space_setup.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Sets up a new Chat space with users.
    * @return {!Promise<!Object>}
    */
    async function setupSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.create',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.setup({
        requestBody: {
          space: {
            spaceType: 'SPACE',
            displayName: 'API-made',
          },
          memberships: [
            {member: {name: 'users/123456789', type: 'HUMAN'}},
            {member: {name: 'users/987654321', type: 'HUMAN'}},
            {groupMember: {name: 'groups/11223344'}},
          ]
        }
      });
    }
    
    setupSpace().then(console.log);
    
  3. Çalışma dizininizde örneği çalıştırın:

    node setup-space.js
    

Bir grubun ve kimliği doğrulanmış kullanıcı dahil üç gerçek kullanıcının yer aldığı adlandırılmış sohbet alanı oluşturulur.

Alana gitmek için alanın kaynak kimliğini kullanarak alanın URL'sini oluşturun. Kaynak kimliğini, Google Chat yanıt gövdesindeki name alanından alabilirsiniz. Örneğin, alanınızın name değeri spaces/1234567 ise şu URL'yi kullanarak alana gidebilirsiniz: https://mail.google.com/chat/u/0/#chat/space/1234567.