Комментарии — это обратная связь пользователя с файлом, например, когда пользователь текстового редактора предлагает перефразировать предложение. Существует два типа комментариев: закреплённые и незакреплённые . Закреплённый комментарий связан с определённым местом, например, с предложением в текстовом редакторе, в определённой версии документа. Напротив, незакреплённый комментарий связан только с документом.
Ответы прикрепляются к комментариям и представляют собой реакцию пользователя на комментарий. API Drive позволяет пользователям добавлять комментарии и ответы к документам, созданным в вашем приложении. Совокупность комментариев и ответов называется обсуждением .
Для всех методов (кроме delete ) ресурса comments необходимо задать системный параметр fields , чтобы указать поля, возвращаемые в ответе. В большинстве методов Drive это действие требуется только для возврата полей, отличных от полей по умолчанию, но для ресурса comments оно обязательно. Если этот параметр пропущен, метод вернёт ошибку. Подробнее см. в разделе Возврат определённых полей .
Добавить незакрепленный комментарий
Чтобы добавить непривязанный комментарий к документу, вызовите метод create с параметром fileId и ресурсом comments , содержащим комментарий.
Комментарий вставляется как обычный текст, но тело ответа содержит поле htmlContent , содержащее контент, отформатированный для отображения.
Добавить ответ на комментарий
Чтобы добавить ответ на комментарий, используйте метод replies.create ресурса replies с параметрами fileId и commentId . В теле запроса для добавления ответа используется поле content .
Ответ вставляется как обычный текст, но тело ответа содержит поле htmlContent , содержащее контент, отформатированный для отображения.
Метод возвращает поля, перечисленные в поле fields .
Запрос
В этом примере мы предоставляем параметры пути fileId и commentId , а также несколько полей.
POST https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID/replies?fields=id,comment
Текст запроса
{
"content": "This is a reply to a comment."
}Разрешить комментарий
Комментарий может быть решен только путем публикации ответа на комментарий.
Чтобы разрешить комментарий, используйте метод replies.create в ресурсе replies с параметрами fileId и commentId .
В теле запроса поле action используется для разрешения комментария. Вы также можете настроить поле content для добавления ответа, закрывающего комментарий.
Когда комментарий разрешён, Диск отмечает ресурс комментария как resolved: true . В отличие от удалённых комментариев , разрешённые комментарии могут включать поля htmlContent или content .
Когда ваше приложение обрабатывает комментарий, ваш пользовательский интерфейс должен показывать, что комментарий был обработан. Например, ваше приложение может:
- Запретить дальнейшие ответы и скрыть все предыдущие ответы, а также исходный комментарий.
- Скрыть решенные комментарии.
Запрос
В этом примере мы предоставляем параметры пути fileId и commentId , а также несколько полей.
POST https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID/replies?fields=id,comment
Текст запроса
{
"action": "resolve",
"content": "This comment has been resolved."
}Добавить закрепленный комментарий к последней версии документа
При добавлении комментария может потребоваться привязать его к определённой области файла. Якорь определяет версию файла и область файла, на которую ссылается комментарий. Ресурс comments определяет поле anchor как строку JSON.
Чтобы добавить закрепленный комментарий:
(Необязательно). Вызовите метод
revisions.list, чтобы получить список всехrevisionIDдокумента. Выполняйте этот шаг только в том случае, если вы хотите привязать комментарий к любой ревизии, кроме последней. Если вы хотите использовать последнюю ревизию, используйтеheadдляrevisionID.Вызовите метод
createс параметромfileID, ресурсомcomments, содержащим комментарий, и строкой привязки JSON, содержащейrevisionID(r) и регион (a).
Способ определения области зависит от типа содержимого документа, с которым вы работаете. Подробнее см. в разделе Определение области .
Определить регион
Как упоминалось ранее, строка привязки JSON содержит revisionID ( r ) и область ( a ). Область ( a ) — это JSON-массив, содержащий классификаторы областей, определяющие формат и местоположение привязки комментария. Классификатор может быть двумерным прямоугольником для изображения, строкой текста в документе или длительностью видео. Чтобы определить область, выберите классификатор области , соответствующий типу контента, к которому вы пытаетесь привязать комментарий. Например, если ваш контент — текст, вы, вероятно, будете использовать классификатор области txt или line .
Список классификаторов регионов в API Drive см. в разделе Классификаторы регионов .
В следующем примере показана строка привязки JSON, которая привязывает комментарии к строкам в двух отдельных областях документа:
- Первая область начинается с 12-й строки (
'n':12) и продолжается три строки ('l':3). - Вторая область охватывает только строку 18 (
'n':18, 'l':1`).
{
'r': 'REVISION_ID',
'a': [
{
'line':
{
'n': 12,
'l': 3,
}
},
{
'line':
{
'n': 18,
'l': 1,
}
}]
}
Замените REVISION_ID на head или идентификатор конкретной ревизии.
Получить комментарий
Чтобы получить комментарий к файлу, используйте метод get ресурса comments с параметрами fileId и commentId . Если вы не знаете идентификатор комментария, вы можете получить список всех комментариев с помощью метода list .
Метод возвращает экземпляр ресурса comments .
Чтобы включить удаленные комментарии в результаты, установите для параметра запроса includedDeleted значение true .
Запрос
В этом примере мы предоставляем параметры пути fileId и commentId , а также несколько полей.
GET https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment,modifiedTime,resolved
Список комментариев
Чтобы вывести список комментариев к файлу, используйте метод list ресурса comments с параметром fileId . Метод возвращает список комментариев.
Передайте следующие параметры запроса для настройки пагинации или фильтрации комментариев:
includeDeleted: Установите значениеtrue, чтобы включить удалённые комментарии. Удалённые комментарии не включают поляhtmlContentиcontent.pageSize: максимальное количество комментариев, возвращаемых на странице.pageToken: токен страницы, полученный при предыдущем вызове списка. Укажите этот токен для получения следующей страницы.startModifiedTime: минимальное значение поляmodifiedTimeдля комментариев к результату.
Запрос
В этом примере мы предоставляем параметр пути fileId , параметр запроса includeDeleted и несколько полей.
GET https://www.googleapis.com/drive/v3/files/FILE_ID/comments?includeDeleted=true&fields=(id,comment,kind,modifiedTime,resolved)
Обновить комментарий
Чтобы обновить комментарий к файлу, используйте метод update ресурса comments с параметрами fileId и commentId . В теле запроса для обновления комментария используется поле content .
Поле resolved » в ресурсе comments доступно только для чтения. Комментарий можно разрешить, только отправив ответ на другой комментарий. Подробнее см. в разделе «Решить проблему комментария» .
Метод возвращает поля, перечисленные в параметре запроса fields .
Запрос
В этом примере мы предоставляем параметры пути fileId и commentId , а также несколько полей.
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment
Текст запроса
{
"content": "This comment is now updated."
}Удалить комментарий
Чтобы удалить комментарий к файлу, используйте метод delete ресурса comments с параметрами fileId и commentId .
При удалении комментария Диск отмечает ресурс комментария как deleted: true . Удалённые комментарии не содержат поля htmlContent и content .
Запрос
В этом примере мы предоставляем параметры пути fileId и commentId .
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID