С помощью ресурса MessagePin в API чата ваше приложение может закреплять сообщения, откреплять сообщения и получать список всех закрепленных сообщений в пространствах Google Chat. Закрепленные сообщения видны в интерфейсе чата для всех участников пространства. Этот API помогает вашему приложению управлять закрепленными сообщениями от имени пользователя.
Информацию о том, как пользователи закрепляют сообщения в пространствах, см. в разделе «Закрепление сообщений, файлов и ссылок в пространствах и сообщениях» .
Предварительные требования
Node.js
- Корпоративный аккаунт Google Workspace с доступом к Google Chat .
- Настройте свою среду:
- Создайте проект в Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения чата.
- Установите библиотеку Node.js Cloud Client .
- Создайте учетные данные клиента OAuth для настольного приложения. Чтобы запустить пример из этого руководства, сохраните учетные данные в виде JSON-файла с именем
credentials.jsonв локальной директории.
- Выберите область авторизации , которая поддерживает аутентификацию пользователей.
Соображения
- Вы можете закреплять только те сообщения, которые уже существуют в пространстве. Вы не можете создать новое сообщение и закрепить его в том же запросе.
- Нельзя закрепить сообщения, которые видны только вам. Например, нельзя закрепить личные сообщения, полученные от приложения.
- В каждом чате может быть до 100 закрепленных сообщений. Если ваше приложение попытается закрепить 101-е сообщение, API вернет ошибку.
Закрепить сообщение
Чтобы закрепить сообщение с аутентификацией пользователя , передайте в запросе следующее:
- Укажите область авторизации
chat.spaces.pinsилиchat.spaces. - Вызовите функцию
messagePins.create. - Укажите
parent(имя пространства) и предоставьтеbodymessageс именем ресурса исходного сообщения.
В следующем примере сообщение закрепляется в пространстве:
Python
- В рабочей директории создайте файл с именем
chat_pin_message.py. Включите следующий код в
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()В коде замените следующее:
В рабочей директории соберите и запустите пример:
python3 chat_pin_message.py
Открепить сообщение
Чтобы открепить сообщение с аутентификацией пользователя , передайте в запросе следующее:
- Укажите область авторизации
chat.spaces.pinsилиchat.spaces. - Вызовите функцию
messagePins.delete. - Укажите
nameресурсаMessagePin, который нужно удалить.
Вот как открепить сообщение:
Python
- В рабочей директории создайте файл с именем
chat_unpin_message.py. Включите следующий код в
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()В коде замените следующее:
В рабочей директории соберите и запустите пример:
python3 chat_unpin_message.py
Получить список закрепленных сообщений
Чтобы получить список закрепленных сообщений в пространствах, к которым у вас есть доступ, используйте аутентификацию пользователя и передайте в запросе следующее:
- Укажите одну из областей чтения:
chat.spaces.pins.readonly,chat.spaces.readonly,chat.spaces.pinsилиchat.spaces. - Вызовите функцию
messagePins.list. - Укажите
parentв качестве имени пространства, из которого будут получаться закрепленные сообщения.
Вот как отобразить список закрепленных сообщений:
Python
- В рабочей директории создайте файл с именем
chat_list_pinned_messages.py. Включите следующий код в
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()В коде замените
SPACEна идентификатор пространства из егоname.В рабочей директории соберите и запустите пример:
python3 chat_list_pinned_messages.py
Связанные темы
- Отформатировать сообщение .
- Удалить сообщение .
- Получить подробную информацию о сообщении .
- Список сообщений в пространстве .
- Обновить сообщение .
- Отправить сообщение .