Komentarze to opinie użytkowników dotyczące pliku, np. sugestie czytelnika dokumentu tekstowego dotyczące zmiany brzmienia zdania. Istnieją 2 rodzaje komentarzy: komentarze zakotwiczone i komentarze niezakotwiczone. Komentarz zakotwiczony jest powiązany z konkretnym miejscem, np. zdaniem w dokumencie tekstowym, w określonej wersji dokumentu. Z kolei komentarz niezakotwiczony jest powiązany tylko z dokumentem.
Odpowiedzi są dołączane do komentarzy i stanowią reakcję użytkownika na komentarz. Interfejs Drive API umożliwia użytkownikom dodawanie komentarzy i odpowiedzi do dokumentów utworzonych przez Twoją aplikację. Komentarz z odpowiedziami jest określany jako dyskusja.
Używanie parametru fields
W przypadku wszystkich metod (z wyjątkiem delete) w zasobie
comments musisz ustawić parametrfields
systemowy aby
określić pola, które mają być zwracane w odpowiedzi. W większości metod zasobów Dysku ta czynność jest wymagana tylko w przypadku zwracania pól innych niż domyślne, ale w przypadku zasobu comments jest obowiązkowa. Jeśli pominiesz parametr fields, metoda zwróci błąd. Więcej informacji znajdziesz w sekcji Zwracanie określonych pól.
Ograniczenia dotyczące komentarzy
Podczas pracy z komentarzami zakotwiczonymi i niezakotwiczonymi w interfejsie Drive API obowiązują te ograniczenia:
| Typ komentarzy | Typ pliku |
|---|---|
| Zakotwiczone |
|
| Niezakotwiczone |
|
Dodawanie komentarza zakotwiczonego do najnowszej wersji dokumentu
Podczas dodawania komentarza możesz go zakotwiczyć w regionie pliku. Kotwica określa region w pliku, do którego odnosi się komentarz. Zasób
comments definiuje pole anchor jako ciąg JSON.
Aby dodać komentarz zakotwiczony:
Opcjonalnie: wywołaj metodę
listw zasobierevisions, aby wyświetlić listę wszystkichrevisionIDdokumentu. Wykonaj ten krok tylko wtedy, gdy chcesz zakotwiczyć komentarz w wersji innej niż najnowsza. Jeśli chcesz użyć najnowszej wersji, użyjheadjakorevisionID.Wywołaj metodę
createw zasobiecommentsz parametremfileID, zasobemcommentszawierającym komentarz oraz ciągiem JSON zawierającymrevisionID(r) i region (a).
Poniższy przykładowy kod pokazuje, jak utworzyć komentarz zakotwiczony:
Python
from google.oauth2.credentials import Credentials
from googleapiclient.errors import HttpError
# --- Configuration ---
# The ID of the file to comment on.
# Example: '1_aBcDeFgHiJkLmNoPqRsTuVwXyZ'
FILE_ID = 'FILE_ID'
# The text content of the comment.
COMMENT_TEXT = 'This is an example of an anchored comment.'
# The line number to anchor the comment to.
# Note: Line numbers are based on the revision.
ANCHOR_LINE = 10
# --- End of user-configuration section ---
SCOPES = ["https://www.googleapis.com/auth/drive"]
creds = Credentials.from_authorized_user_file("token.json", SCOPES)
def create_anchored_comment():
"""
Create an anchored comment on a specific line in a Google Doc.
Returns:
The created comment object or None if an error occurred.
"""
try:
# Build the Drive API service
service = build("drive", "v3", credentials=creds)
# Define the anchor region for the comment.
# For Google Docs, the region is typically defined by 'line' and 'revision'.
# Other file types might use different region classifiers.
anchor = {
'region': {
'kind': 'drive#commentRegion',
'line': ANCHOR_LINE,
'rev': 'head'
}
}
# The comment body.
comment_body = {
'content': COMMENT_TEXT,
'anchor': anchor
}
# Create the comment request.
comment = (
service.comments()
.create(fileId=FILE_ID, fields="*", body=comment_body)
.execute()
)
print(f"Comment ID: {comment.get('id')}")
return comment
except HttpError as error:
print(f"An error occurred: {error}")
return None
create_anchored_comment()
Interfejs Drive API zwraca instancję obiektu zasobu comments, która zawiera ciąg anchor.
Dodawanie komentarza niezakotwiczonego
Aby dodać komentarz niezakotwiczony, wywołaj metodę create z parametrem fileId i zasobem
comments zawierającym komentarz.
Komentarz jest wstawiany jako zwykły tekst, ale treść odpowiedzi zawiera
htmlContent pole
z treścią sformatowaną do wyświetlenia.
Poniższy przykładowy kod pokazuje, jak utworzyć komentarz niezakotwiczony:
Python
from google.oauth2.credentials import Credentials
from googleapiclient.errors import HttpError
# --- Configuration ---
# The ID of the file to comment on.
# Example: '1_aBcDeFgHiJkLmNoPqRsTuVwXyZ'
FILE_ID = 'FILE_ID'
# The text content of the comment.
COMMENT_TEXT = 'This is an example of an unanchored comment.'
# --- End of user-configuration section ---
SCOPES = ["https://www.googleapis.com/auth/drive"]
creds = Credentials.from_authorized_user_file("token.json", SCOPES)
def create_unanchored_comment():
"""
Create an unanchored comment on a specific line in a Google Doc.
Returns:
The created comment object or None if an error occurred.
"""
try:
# Build the Drive API service
service = build("drive", "v3", credentials=creds)
# The comment body. For an unanchored comment,
# omit the 'anchor' property.
comment_body = {
'content': COMMENT_TEXT
}
# Create the comment request.
comment = (
service.comments()
.create(fileId=FILE_ID, fields="*", body=comment_body)
.execute()
)
print(f"Comment ID: {comment.get('id')}")
return comment
except HttpError as error:
print(f"An error occurred: {error}")
return None
create_unanchored_comment()
Dodawanie odpowiedzi do komentarza
Aby dodać odpowiedź do komentarza, użyj
create metody w
replies zasobie z fileId i
commentId parametrami. Treść żądania używa pola content do dodania odpowiedzi.
Odpowiedź jest wstawiana jako zwykły tekst, ale treść odpowiedzi zawiera pole htmlContent z treścią sformatowaną do wyświetlenia.
Metoda zwraca pola wymienione w polu fields.
Żądanie
W tym przykładzie podajemy parametry ścieżki fileId i commentId oraz kilka pól.
POST https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID/replies?fields=id,comment
Treść żądania
{
"content": "This is a reply to a comment."
}Kończenie wątku komentarza
Komentarz można zamknąć tylko przez opublikowanie odpowiedzi na komentarz.
Aby zamknąć komentarz, użyj metody create
w zasobie replies z parametrami fileId
i commentId.
Treść żądania używa pola
action do zamknięcia
komentarza. Możesz też ustawić pole content, aby dodać odpowiedź, która zamyka komentarz.
Gdy komentarz zostanie zamknięty, Dysk oznaczy zasób comments jako resolved: true. W przeciwieństwie do usuniętych komentarzy, zamknięte
komentarze mogą zawierać pola htmlContent lub content.
Gdy aplikacja zamknie komentarz, interfejs użytkownika powinien wskazywać, że komentarz został rozwiązany. Na przykład aplikacja może:
- Zablokować dalsze odpowiedzi i przyciemnić wszystkie poprzednie odpowiedzi oraz oryginalny komentarz.
- Ukryć zakończone komentarze.
Żądanie
W tym przykładzie podajemy parametry ścieżki fileId i commentId oraz kilka pól.
POST https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID/replies?fields=id,comment
Treść żądania
{
"action": "resolve",
"content": "This comment has been resolved."
}Pobieranie komentarza
Aby pobrać komentarz do pliku, użyj get
metody w zasobie comments z parametrami
fileId i commentId. Jeśli nie znasz identyfikatora komentarza, możesz
wyświetlić listę wszystkich komentarzy za pomocą metody list.
Metoda zwraca instancję zasobu comments.
Aby uwzględnić usunięte komentarze w wynikach, ustaw includedDeleted parametr
zapytania na true.
Żądanie
W tym przykładzie podajemy parametry ścieżki fileId i commentId oraz kilka pól.
GET https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment,modifiedTime,resolved
Wyświetlanie listy komentarzy
Aby wyświetlić listę komentarzy do pliku, użyj list
metody w zasobie comments z
fileId parametrem. Metoda zwraca listę komentarzy.
Aby dostosować paginację lub filtrowanie komentarzy, przekaż te parametry zapytania:
includeDeleted: ustaw natrue, aby uwzględnić usunięte komentarze. Usunięte komentarze nie zawierają pólhtmlContentanicontent.pageSize: maksymalna liczba komentarzy do zwrócenia na stronie.pageToken: token strony otrzymany z poprzedniego wywołania listy. Podaj ten token, aby pobrać następną stronę.startModifiedTime: minimalna wartość polamodifiedTimew komentarzach wynikowych.
Żądanie
W tym przykładzie podajemy parametr ścieżki fileId, parametr zapytania includeDeleted oraz kilka pól.
GET https://www.googleapis.com/drive/v3/files/FILE_ID/comments?includeDeleted=true&fields=(id,comment,kind,modifiedTime,resolved)
Aktualizowanie komentarza
Aby zaktualizować komentarz do pliku, użyj metody
update w zasobie comments z parametrami fileId i commentId. Treść żądania używa pola content do zaktualizowania komentarza.
Pole logiczne resolved
w zasobie comments jest tylko do odczytu. Komentarz można zamknąć tylko przez opublikowanie odpowiedzi na komentarz. Więcej informacji znajdziesz w sekcji Kończenie wątku
komentarza.
Metoda zwraca pola wymienione w parametrze zapytania fields.
Żądanie
W tym przykładzie podajemy parametry ścieżki fileId i commentId oraz kilka pól.
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment
Treść żądania
{
"content": "This comment is now updated."
}Usuwanie komentarzy
Aby usunąć komentarz do pliku, użyj metody
delete w zasobie comments z parametrami fileId i commentId.
Gdy komentarz zostanie usunięty, Dysk oznaczy zasób komentarza jako deleted: true. Usunięte komentarze nie zawierają pól htmlContent ani content.
Żądanie
W tym przykładzie podajemy parametry ścieżki fileId i commentId.
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID