Закреплять или откреплять сообщения в чатах Google.

С помощью ресурса MessagePin в API чата ваше приложение может закреплять сообщения, откреплять сообщения и получать список всех закрепленных сообщений в пространствах Google Chat. Закрепленные сообщения видны в интерфейсе чата для всех участников пространства. Этот API помогает вашему приложению управлять закрепленными сообщениями от имени пользователя.

Информацию о том, как пользователи закрепляют сообщения в пространствах, см. в разделе «Закрепление сообщений, файлов и ссылок в пространствах и сообщениях» .

Предварительные требования

Node.js

Соображения

  • Вы можете закреплять только те сообщения, которые уже существуют в пространстве. Вы не можете создать новое сообщение и закрепить его в том же запросе.
  • Нельзя закрепить сообщения, которые видны только вам. Например, нельзя закрепить личные сообщения, полученные от приложения.
  • В каждом чате может быть до 100 закрепленных сообщений. Если ваше приложение попытается закрепить 101-е сообщение, API вернет ошибку.

Закрепить сообщение

Чтобы закрепить сообщение с аутентификацией пользователя , передайте в запросе следующее:

  • Укажите область авторизации chat.spaces.pins или chat.spaces .
  • Вызовите функцию messagePins.create .
  • Укажите parent (имя пространства) и предоставьте body message с именем ресурса исходного сообщения.

В следующем примере сообщение закрепляется в пространстве:

Python

  1. В рабочей директории создайте файл с именем chat_pin_message.py .
  2. Включите следующий код в chat_pin_message.py :

    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. В коде замените следующее:

    • SPACE : идентификатор из name пространства.
    • MESSAGE : идентификатор из name сообщения.
  4. В рабочей директории соберите и запустите пример:

    python3 chat_pin_message.py

Открепить сообщение

Чтобы открепить сообщение с аутентификацией пользователя , передайте в запросе следующее:

  • Укажите область авторизации chat.spaces.pins или chat.spaces .
  • Вызовите функцию messagePins.delete .
  • Укажите name ресурса MessagePin , который нужно удалить.

Вот как открепить сообщение:

Python

  1. В рабочей директории создайте файл с именем chat_unpin_message.py .
  2. Включите следующий код в chat_unpin_message.py :

    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. В коде замените следующее:

    • SPACE : идентификатор из name пространства.
    • MESSAGE : идентификатор из name сообщения.
  4. В рабочей директории соберите и запустите пример:

    python3 chat_unpin_message.py

Получить список закрепленных сообщений

Чтобы получить список закрепленных сообщений в пространствах, к которым у вас есть доступ, используйте аутентификацию пользователя и передайте в запросе следующее:

  • Укажите одну из областей чтения: chat.spaces.pins.readonly , chat.spaces.readonly , chat.spaces.pins или chat.spaces .
  • Вызовите функцию messagePins.list .
  • Укажите parent в качестве имени пространства, из которого будут получаться закрепленные сообщения.

Вот как отобразить список закрепленных сообщений:

Python

  1. В рабочей директории создайте файл с именем chat_list_pinned_messages.py .
  2. Включите следующий код в chat_list_pinned_messages.py :

    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. В коде замените SPACE на идентификатор пространства из его name .

  4. В рабочей директории соберите и запустите пример:

    python3 chat_list_pinned_messages.py