Google Chat alanlarında mesajları sabitleme veya sabitlemeyi kaldırma

Chat API'deki MessagePin kaynağı ile uygulamanız mesajları sabitleyebilir, mesajların sabitlenmesini kaldırabilir ve Google Chat alanlarındaki tüm sabitlenmiş mesajların listesini alabilir. Sabitlenmiş mesajlar, alanın tüm üyeleri için Chat arayüzünde görünür. Bu API, uygulamanızın kullanıcı adına sabitlenmiş iletileri yönetmesine yardımcı olur.

Kullanıcıların alanlardaki mesajları nasıl sabitlediği hakkında bilgi edinmek için Mesajları, dosyaları ve bağlantıları alanlarda ve mesajlarda sabitleme başlıklı makaleyi inceleyin.

Ön koşullar

Node.js

Dikkat edilmesi gereken noktalar

  • Yalnızca bir alanda mevcut olan mesajları sabitleyebilirsiniz. Yeni bir mesaj oluşturup aynı istekte sabitleyemezsiniz.
  • Yalnızca sizin görebileceğiniz mesajları sabitleyemezsiniz. Örneğin, bir uygulamadan aldığınız özel mesajları sabitleyemezsiniz.
  • Her Chat alanında en fazla 100 sabitlenmiş mesaj olabilir. Uygulamanız 101. mesajı sabitlemeye çalışırsa API hata döndürür.

Mesaj sabitleme

Kullanıcı kimlik doğrulaması ile mesaj sabitlemek için isteğinizde aşağıdakileri iletin:

  • chat.spaces.pins veya chat.spaces yetkilendirme kapsamını belirtin.
  • messagePins.create numaralı telefonu arayın.
  • parent (alan adı) değerini belirtin ve message orijinal mesajın kaynak adıyla birlikte body değerini sağlayın.

Aşağıdaki örnekte, bir alandaki mesaj sabitleniyor:

Python

  1. Çalışma dizininizde chat_pin_message.py adlı bir dosya oluşturun.
  2. chat_pin_message.py'ya aşağıdaki kodu ekleyin:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then pins a message in a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # Pin a message.
        result = service.spaces().messagePins().create(
            # The space to pin the message in.
            #
            # Replace SPACE with a space ID or name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE',
    
            # The message to pin.
            body={
                'message': 'spaces/SPACE/messages/MESSAGE'
            }
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Koddaki aşağıdaki yerleri değiştirin:

    • SPACE: Alanın name kimliği.
    • MESSAGE: İletinin name bölümündeki kimlik.
  4. Çalışma dizininizde örneği oluşturun ve çalıştırın:

    python3 chat_pin_message.py

Mesajın sabitlemesini kaldırma

Kullanıcı kimlik doğrulaması ile bir mesajın sabitlemesini kaldırmak için isteğinizde aşağıdakileri iletin:

  • chat.spaces.pins veya chat.spaces yetkilendirme kapsamını belirtin.
  • messagePins.delete numaralı telefonu arayın.
  • Silinecek MessagePin kaynağının kaynak adını name olarak ayarlayın.

Bir mesajı sabitlemeyi kaldırmak için:

Python

  1. Çalışma dizininizde chat_unpin_message.py adlı bir dosya oluşturun.
  2. chat_unpin_message.py'ya aşağıdaki kodu ekleyin:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then unpins a message from a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # Unpin a message.
        result = service.spaces().messagePins().delete(
            # The resource name of the message pin to delete.
            #
            # Replace SPACE with a space ID or name, and MESSAGE with the message ID.
            name='spaces/SPACE/messagePins/MESSAGE'
        ).execute()
    
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Koddaki aşağıdaki yerleri değiştirin:

    • SPACE: Alanın name kimliği.
    • MESSAGE: İletinin name bölümündeki kimlik.
  4. Çalışma dizininizde örneği oluşturun ve çalıştırın:

    python3 chat_unpin_message.py

Sabitlenmiş mesajların listesini alma

Erişiminiz olan alanlarda sabitlenmiş mesajların listesini almak için kullanıcı kimlik doğrulamasını kullanın ve isteğinizde aşağıdakileri iletin:

  • Okuma kapsamlarından birini belirtin: chat.spaces.pins.readonly, chat.spaces.readonly, chat.spaces.pins veya chat.spaces.
  • messagePins.list numaralı telefonu arayın.
  • Sabitlenmiş iletilerin getirileceği alan adı olarak parent değerini belirtin.

Sabitlenmiş iletileri listeleme adımları:

Python

  1. Çalışma dizininizde chat_list_pinned_messages.py adlı bir dosya oluşturun.
  2. chat_list_pinned_messages.py'ya aşağıdaki kodu ekleyin:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists pinned messages in a space.
        '''
    
        # Authenticate with Google Workspace and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        service = build('chat', 'v1', credentials=creds)
    
        # List pinned messages.
        result = service.spaces().messagePins().list(
            # The space to list pinned messages from.
            #
            # Replace SPACE with a space ID or name.
            parent='spaces/SPACE'
        ).execute()
    
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Koddaki SPACE yerine, alanın name bölümündeki alan kimliğini girin.

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

    python3 chat_list_pinned_messages.py