Przypinanie i odpinanie wiadomości w pokojach Google Chat

Za pomocą MessagePinzasobu w interfejsie Chat API aplikacja może przypinać i odpinać wiadomości oraz pobierać listę wszystkich przypiętych wiadomości w pokojach Google Chat. Przypięte wiadomości są widoczne w interfejsie Google Chat dla wszystkich użytkowników pokoju. Ten interfejs API pomaga aplikacji zarządzać przypiętymi wiadomościami w imieniu użytkownika.

Informacje o tym, jak użytkownicy przypinają wiadomości w pokojach, znajdziesz w artykule Przypinanie wiadomości, plików i linków w pokojach oraz wiadomościach.

Wymagania wstępne

Node.js

Uwagi

  • Możesz przypinać tylko wiadomości, które już znajdują się w pokoju. Nie możesz utworzyć nowego komunikatu i przypiąć go w tym samym żądaniu.
  • Nie możesz przypinać wiadomości, które są widoczne tylko dla Ciebie. Nie możesz na przykład przypinać wiadomości prywatnych otrzymywanych z aplikacji.
  • Każdy pokój czatu może mieć maksymalnie 100 przypiętych wiadomości. Jeśli aplikacja spróbuje przypiąć 101 wiadomość, interfejs API zwróci błąd.

Przypinanie wiadomości

Aby przypiąć wiadomość z uwierzytelnianiem użytkownika, w żądaniu przekaż te informacje:

  • Określ zakres autoryzacji chat.spaces.pins lub chat.spaces.
  • Zadzwoń pod numer messagePins.create.
  • Określ parent (nazwę pokoju) i podaj body z messagenazwą zasobu oryginalnej wiadomości.

Ten przykład przypina wiadomość w pokoju:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_pin_message.py.
  2. Dodaj do pliku chat_pin_message.py ten kod:

    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. W kodzie zastąp te elementy:

    • SPACE: identyfikator z name pokoju.
    • MESSAGE: identyfikator z pola name wiadomości.
  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_pin_message.py

Odepnij wiadomość

Aby odpiąć wiadomość za pomocą uwierzytelniania użytkownika, w żądaniu przekaż te informacje:

  • Określ zakres autoryzacji chat.spaces.pins lub chat.spaces.
  • Zadzwoń pod numer messagePins.delete.
  • Ustaw name na nazwę zasobu MessagePin, który chcesz usunąć.

Aby odpiąć wiadomość:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_unpin_message.py.
  2. Dodaj do pliku chat_unpin_message.py ten kod:

    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. W kodzie zastąp te elementy:

    • SPACE: identyfikator z name pokoju.
    • MESSAGE: identyfikator z pola name wiadomości.
  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_unpin_message.py

Wyświetlanie listy przypiętych wiadomości

Aby uzyskać listę przypiętych wiadomości w pokojach, do których masz dostęp, użyj uwierzytelniania użytkownika i w żądaniu przekaż te informacje:

  • Określ jeden z zakresów odczytu: chat.spaces.pins.readonly, chat.spaces.readonly, chat.spaces.pins lub chat.spaces.
  • Zadzwoń pod numer messagePins.list.
  • Jako nazwę pokoju podaj parent, aby pobrać przypięte wiadomości.

Aby wyświetlić listę przypiętych wiadomości:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_list_pinned_messages.py.
  2. Dodaj do pliku chat_list_pinned_messages.py ten kod:

    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. W kodzie zastąp SPACE identyfikatorem przestrzeni z name przestrzeni.

  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_list_pinned_messages.py