Mesaj güncelleme

Bu kılavuzda, patch yönteminin Message kaynağında nasıl kullanılacağı açıklanmaktadır. Google Chat API'yi kullanarak alandaki kısa mesaj veya kart mesajını güncelleyin. Bir mesajının içeriği veya mesajın içeriği gibi mesaj özelliklerini kartını inceleyebilirsiniz. İsterseniz kart gösterebilir veya kısa mesaja kart ekleyebilirsiniz.

Chat API, update yöntem, ancak patch yöntemi çünkü aynı zamanda PATCH update şunları kullanır: PUT HTTP isteği. Daha fazla bilgi edinmek için AIP-134'ün PATCH ve PUT bölümü.

Chat API'de bir Chat mesajı Message kaynak. Chat kullanıcıları yalnızca metin içeren mesajlar gönderebilir. Chat uygulamaları, aşağıdakiler de dahil olmak üzere pek çok mesajlaşma özelliğini kullanabilir: statik veya etkileşimli kullanıcı arayüzleri gösterme, ve mesajları gizli olarak teslim edebilirsiniz. Mesajlaşma hakkında daha fazla bilgi edinmek için özellikleri hakkında daha fazla bilgi için Google Chat mesajlarına genel bakış

Ön koşullar

Python

  • Python 3.6 veya sonraki sürümler
  • pip paket yönetim aracı
  • En yeni Google istemci kitaplıkları. Bu uygulamaları 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
    
    .

Kullanıcı kimlik doğrulamasıyla kısa mesajı güncelleme veya kart mesajına kısa mesaj ekleme

Bir kısa mesaj şununla: kullanıcı kimlik doğrulaması, geçiş şunları belirtin:

  • chat.messages yetkilendirme kapsamı.
  • Güncellenecek mesajın name öğesi.
  • updateMask='text'
  • Güncellenen mesajı belirten body.

Güncellenen mesaj kart mesajı, Kart mesajının başına kısa mesaj eklenir (göstermeye devam eder).

Bir kısa mesaj veya şuna bir kısa mesaj ekle: kart mesajı şununla: kullanıcı kimlik doğrulaması:

Python

  1. Çalışma dizininizde şu ada sahip bir dosya oluşturun: chat_update_text_message_user.py
  2. Aşağıdaki kodu chat_update_text_message_user.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.messages"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates a message.
        '''
    
        # 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)
    
        # Update a Chat message.
        result = chat.spaces().messages().patch(
    
          # The message to update, and the updated message.
          #
          # Replace SPACE with a space name.
          # Obtain the space name from the spaces resource of Chat API,
          # or from a space's URL.
          #
          # Replace MESSAGE with a message name.
          # Obtain the message name from the response body returned
          # after creating a message asynchronously with Chat REST API.
          name='spaces/SPACE/messages/MESSAGE',
          updateMask='text',
          body={'text': 'Updated message!'}
    
        ).execute()
    
        # Prints details about the updated message.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Bu kodda, aşağıdakini değiştirin:

    • SPACE: şuradan alabileceğiniz bir alan adı: "the" spaces.list yöntem API'den veya bir alanın URL'sinden.
    • MESSAGE: edinebileceğiniz bir mesaj adı eşzamansız olarak bir ileti oluşturduktan sonra döndürülen yanıt gövdesinden veya özel ad , oluşturma sırasında mesaja atanır.
  4. Çalışma dizininizde örneği derleyin ve çalıştırın:

    python3 chat_update_text_message_user.py
    

Uygulama kimlik doğrulaması ile kısa mesajı güncelleme veya kart mesajına kısa mesaj ekleme

Bir kısa mesaj şununla: uygulama kimlik doğrulaması, isteğinizde aşağıdakileri iletin:

  • chat.bot yetkilendirme kapsamı.
  • Güncellenecek mesajın name öğesi.
  • updateMask='text'
  • Güncellenen mesajı belirten body.

Güncellenmiş mesaj bir kart mesajıysa Kart mesajının başına kısa mesaj eklenir (göstermeye devam eder).

Bir kısa mesaj bir metin mesajının başına veya kart mesajı şununla: uygulama kimlik doğrulaması:

Python

  1. Çalışma dizininizde şu ada sahip bir dosya oluşturun: chat_update_text_message_app.py
  2. Aşağıdaki kodu chat_update_text_message_app.py bölümüne 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)
    
    # Update a Chat message.
    result = chat.spaces().messages().patch(
    
      # The message to update, and the updated message.
      #
      # Replace SPACE with a space name.
      # Obtain the space name from the spaces resource of Chat API,
      # or from a space's URL.
      #
      # Replace MESSAGE with a message name.
      # Obtain the message name from the response body returned
      # after creating a message asynchronously with Chat REST API.
      name='spaces/SPACE/messages/MESSAGE',
      updateMask='text',
      body={'text': 'Updated message!'}
    
    ).execute()
    
    # Print Chat API's response in your command line interface.
    print(result)
    
  3. Bu kodda, aşağıdakini değiştirin:

    • SPACE: şuradan alabileceğiniz bir alan adı: "the" spaces.list yöntem API'den veya bir alanın URL'sinden.
    • MESSAGE: edinebileceğiniz bir mesaj adı eşzamansız olarak bir ileti oluşturduktan sonra döndürülen yanıt gövdesinden veya özel ad , oluşturma sırasında mesaja atanır.
  4. Çalışma dizininizde örneği derleyin ve çalıştırın:

    python3 chat_update_text_message_app.py
    

Kart mesajını güncelleme veya kısa mesaja kart mesajı ekleme

Bir kart mesajı, isteğinizde aşağıdakileri iletin:

  • chat.bot yetkilendirme kapsamı. Kart mesajı güncellemek için uygulama kimlik doğrulaması.
  • Güncellenecek mesajın name öğesi.
  • updateMask='cardsV2'
  • Güncellenen mesajı belirten body.

Güncellenen mesaj kısa mesaj, ardından kısa mesaja bir kart eklenir (göstermeye devam eder). Öğe güncellenmiş mesajın kendisi card ise gösterilen kart güncellendi.

Bir mesajı kart mesajı:

Python

  1. Çalışma dizininizde şu ada sahip bir dosya oluşturun: chat_update_card_message.py
  2. Aşağıdaki kodu chat_update_card_message.py bölümüne 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)
    
    # Update a Chat message.
    result = chat.spaces().messages().patch(
    
      # The message to update, and the updated message.
      #
      # Replace SPACE with a space name.
      # Obtain the space name from the spaces resource of Chat API,
      # or from a space's URL.
      #
      # Replace MESSAGE with a message name.
      # Obtain the message name from the response body returned
      # after creating a message asynchronously with Chat REST API.
      name='spaces/SPACE/messages/MESSAGE',
      updateMask='cardsV2',
      body=
      {
        'cardsV2': [{
          'cardId': 'updateCardMessage',
          'card': {
            'header': {
              'title': 'An Updated Card Message!',
              'subtitle': 'Updated with Chat REST API',
              'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png',
              'imageType': 'CIRCLE'
            },
            'sections': [
              {
                'widgets': [
                  {
                    'buttonList': {
                      'buttons': [
                        {
                          'text': 'Read the docs!',
                          'onClick': {
                            'openLink': {
                              'url': 'https://developers.google.com/chat'
                            }
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        }]
      }
    
    ).execute()
    
    # Print Chat API's response in your command line interface.
    print(result)
    
  3. Bu kodda, aşağıdakini değiştirin:

    • SPACE: şuradan alabileceğiniz bir alan adı: "the" spaces.list yöntem API'den veya bir alanın URL'sinden.

    • MESSAGE: edinebileceğiniz bir mesaj adı eşzamansız olarak bir ileti oluşturduktan sonra döndürülen yanıt gövdesinden veya özel ad , oluşturma sırasında mesaja atanır.

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

    python3 chat_update_card_message.py
    

Chat API, Message güncelleme mesajının ayrıntılarını içerir.

Bir mesajı birden çok alan yoluyla aynı anda güncelleme

Bir mesaj güncellendiğinde birden fazla mesaj alanı yolunu gerekir. Örneğin, bir güncelleme mesajı isteğinde, text ve cardsv2 alan yollarını aynı anda günceller. Bu işlem hem mesajın metnini ve kartını değiştirin. Mesajda yalnızca metin varsa ve kart yoksa bir kart eklenir. Desteklenen alan yolları hakkında daha fazla bilgi için bkz. updateMask parametreleri.

Hem text ve card şu mesajı içeren: kullanıcı kimlik doğrulaması, isteğinizde aşağıdakileri iletin:

  • chat.messages yetkilendirme kapsamı.
  • Güncellenecek mesajın name öğesi.
  • Güncellenecek mesaj alanı yollarını belirten updateMask virgülle ayrılmış: updateMask='text', 'cardsV2'.

  • Güncellenen tüm alanlar dahil olmak üzere, güncellenen mesajı belirten bir body yollar.

Şurada text ve cardsV2 alan yollarının nasıl güncelleneceği aşağıda açıklanmıştır: şununla mesaj gönder: kullanıcı kimlik doğrulaması:

Python

  1. Çalışma dizininizde şu ada sahip bir dosya oluşturun: chat_update_text_message_user.py
  2. Aşağıdaki kodu chat_update_text_message_user.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.messages"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates a message.
        '''
    
        # 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)
    
        # Update a Chat message.
        result = chat.spaces().messages().patch(
    
          # The message to update, and the updated message.
          #
          # Replace SPACE with a space name.
          # Obtain the space name from the spaces resource of Chat API,
          # or from a space's URL.
          #
          # Replace MESSAGE with a message name.
          # Obtain the message name from the response body returned
          # after creating a message asynchronously with Chat REST API.
          name='spaces/SPACE/messages/MESSAGE',
          updateMask='text,cardsV2',
          body=
          {'text': 'Updated message!',
                'cardsV2': [{
                  'cardId': 'updateCardMessage',
                  'card': {
                    'header': {
                      'title': 'An Updated Card Message!',
                      'subtitle': 'Updated with Chat REST API',
                      'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png',
                      'imageType': 'CIRCLE'
                    },
                    'sections': [
                      {
                        'widgets': [
                          {
                            'buttonList': {
                              'buttons': [
                                {
                                  'text': 'Read the docs!',
                                  'onClick': {
                                    'openLink': {
                                      'url': 'https://developers.google.com/chat'
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      }
                    ]
                  }
                }]
          }
    
        ).execute()
    
        # Prints details about the updated message.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Bu kodda, aşağıdakini değiştirin:

    • SPACE: şuradan alabileceğiniz bir alan adı: "the" spaces.list yöntem API'den veya bir alanın URL'sinden.
    • MESSAGE: edinebileceğiniz bir mesaj adı eşzamansız olarak bir ileti oluşturduktan sonra döndürülen yanıt gövdesinden veya özel ad , oluşturma sırasında mesaja atanır.
  4. Çalışma dizininizde örneği derleyin ve çalıştırın:

    python3 chat_update_text_message_user.py