Doğrudan mesaj (DM) alanı bulma

Bu kılavuzda, doğrudan mesaj (DM) alanıyla ilgili ayrıntıları almak için Google Chat API'nin Space kaynağındaki findDirectMessage yönteminin nasıl kullanılacağı açıklanmaktadır.

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), 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 uygulaması arasındaki görüşmelerdir.
  • Adlandırılmış alanlar, kullanıcıların mesaj gönderdiği, dosya paylaştığı ve ortak çalışma yaptığı kalıcı yerlerdir.

Uygulama kimlik doğrulaması ile kimlik doğrulama, bir Chat uygulamasının, Chat uygulamasının Google Chat'te erişebildiği DM'leri (örneğin, üyesi olduğu DM'ler) almasına olanak tanır. Kullanıcı kimlik doğrulaması ile kimlik doğrulama, kimliği doğrulanan kullanıcının erişebildiği DM'leri döndürür.

Ö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-auth
    
  • 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ı. Doğrudan mesaj bulmanın ikisini de destekler:

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ı. Doğrudan mesaj bulmanın ikisini de destekler:

Doğrudan mesajları bulma

Google Chat'te doğrudan mesajları bulmak için isteğinizde aşağıdakileri iletin:

  • Uygulama kimlik doğrulaması ile chat.bot yetkilendirme kapsamını belirtin. Kullanıcı kimlik doğrulaması ile chat.spaces.readonly veya chat.spaces yetkilendirme kapsamını belirtin.
  • Geri döndürülmesi için DM'deki diğer kullanıcının name değerini ileterek User kaynağında findDirectMessage yöntemini çağırın. Kullanıcı kimlik doğrulaması ile bu yöntem, çağrı yapan kullanıcı ile belirtilen kullanıcı arasında bir DM döndürür. Uygulama kimlik doğrulaması ile bu yöntem, çağrı yapan uygulama ile belirtilen kullanıcı arasında bir DM döndürür.
  • Alan üyesi olarak bir insan kullanıcıyı eklemek için users/{user} değerini belirtin. Burada {user}, People API'deki person için {person_id} veya Directory API'deki bir user kimliğinin değeridir. Örneğin, resourceName adlı People API kullanıcısı people/123456789 ise users/123456789 ile member.name üyeliği ekleyerek bu kullanıcıyı alana ekleyebilirsiniz.

Kullanıcı kimlik doğrulaması içeren doğrudan mesajları bulma

Kullanıcı kimlik doğrulaması ile doğrudan mesajları şu şekilde bulabilirsiniz:

Python

  1. Çalışma dizininizde chat_space_find_dm_user.py adında bir dosya oluşturun.
  2. chat_space_find_dm_user.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.spaces.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then returns details about a specified DM.
        '''
    
        # 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().findDirectMessage(
    
              # The other user in the direct message (DM) to return.
              #
              # Replace USER with a user name.
              name='users/USER'
    
          ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Koddaki USER değerini, Google Chat'te User öğesinin name ile değiştirin.

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

    python3 chat_space_find_dm_user.py
    

Node.js

  1. Çalışma dizininizde find-direct-message-space.js adında bir dosya oluşturun.

  2. find-direct-message-space.js içine şu kodu ekleyin:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.readonly',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. Koddaki USER değerini, Google Chat'te User öğesinin name ile değiştirin.

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

    node find-direct-message-space.js
    

Chat API, belirtilen DM ile ilgili ayrıntıları içeren bir Space örneği döndürür.

Uygulama kimlik doğrulamasıyla doğrudan mesajları bulma

Uygulama kimlik doğrulaması ile doğrudan mesajları şu şekilde bulabilirsiniz:

Python

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().findDirectMessage(
    
        # The other user in the direct message (DM) to return.
        #
        # Replace USER with a user name.
        name='users/USER'
    
    ).execute()
    
    print(result)
    
  3. Koddaki USER değerini, Google Chat'te User öğesinin name ile değiştirin.

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

    python3 chat_space_find_dm_app.py
    

Node.js

  1. Çalışma dizininizde app-find-direct-message-space.js adında bir dosya oluşturun.

  2. app-find-direct-message-space.js içine şu kodu ekleyin:

    const chat = require('@googleapis/chat');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.bot',
      ];
    
      const auth = new chat.auth.GoogleAuth({
        scopes,
        keyFilename: 'credentials.json',
      });
    
      const authClient = await auth.getClient();
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. Koddaki USER değerini, Google Chat'te User öğesinin name ile değiştirin.

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

    node app-find-direct-message-space.js
    

Chat API, belirtilen DM ile ilgili ayrıntıları içeren bir Space örneği döndürür.