Kommentare sind von Nutzern bereitgestelltes Feedback zu einer Datei, z. B. wenn ein Leser eines Textverarbeitungsdokuments vorschlägt, wie ein Satz umformuliert werden könnte. Es gibt zwei Arten von Kommentaren: Verankerte Kommentare und nicht verankerte Kommentare. Ein verankerter Kommentar ist einer bestimmten Stelle, z. B. einem Satz in einem Textverarbeitungsdokument, in einer bestimmten Version eines Dokuments zugeordnet. Ein nicht verankerter Kommentar ist dagegen nur dem Dokument zugeordnet.
Antworten sind an Kommentare angehängt und stellen die Reaktion eines Nutzers auf den Kommentar dar. Mit der Drive API können Ihre Nutzer Dokumenten, die von Ihrer App erstellt wurden, Kommentare und Antworten hinzufügen. Ein Kommentar mit Antworten wird als Diskussion bezeichnet.
Parameter „fields“ verwenden
Für alle Methoden (außer delete) für die Ressource comments müssen Sie den fields-Systemparameter festlegen, um die Felder anzugeben, die in der Antwort zurückgegeben werden sollen. Bei den meisten Drive-Ressourcenmethoden ist diese Aktion nur erforderlich, um nicht standardmäßige Felder zurückzugeben. Für die comments-Ressource ist sie jedoch obligatorisch. Wenn Sie den Parameter fields weglassen, gibt die Methode einen Fehler zurück. Weitere Informationen finden Sie unter Bestimmte Felder zurückgeben.
Einschränkungen bei Kommentaren
Bei der Arbeit mit verankerten und nicht verankerten Kommentaren mit der Drive API gelten die folgenden Einschränkungen:
| Kommentartyp | Dateityp |
|---|---|
| Verankert |
|
| Nicht verankert |
|
Verankerten Kommentar zur neuesten Version eines Dokuments hinzufügen
Wenn Sie einen Kommentar hinzufügen, möchten Sie ihn vielleicht an einen Bereich in der Datei anhängen. Mit einem Anker wird ein Bereich in einer Datei definiert, auf den sich ein Kommentar bezieht. In der Ressource comments wird das Feld anchor als JSON-String definiert.
So fügst du einen angepinnten Kommentar hinzu:
Optional: Rufen Sie die Methode
listfür die Ressourcerevisionsauf, um allerevisionIDfür ein Dokument aufzulisten. Führen Sie diesen Schritt nur aus, wenn Sie einen Kommentar an einer anderen als der neuesten Version verankern möchten. Wenn Sie die neueste Version verwenden möchten, geben SieheadfürrevisionIDein.Rufen Sie die Methode
createfür die Ressourcecommentsmit dem ParameterfileID, einercomments-Ressource mit dem Kommentar und einem JSON-Ankerstring mitrevisionID(r) und Region (a) auf.
Das folgende Codebeispiel zeigt, wie ein verankerter Kommentar erstellt wird:
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()
Die Drive API gibt eine Instanz des comments-Ressourcenobjekts zurück, das den anchor-String enthält.
Nicht verankerten Kommentar hinzufügen
Wenn Sie einen nicht verankerten Kommentar hinzufügen möchten, rufen Sie die Methode create mit dem Parameter fileId und einer comments-Ressource auf, die den Kommentar enthält.
Der Kommentar wird als Nur-Text eingefügt, aber der Antworttext enthält das Feld htmlContent mit für die Anzeige formatiertem Inhalt.
Das folgende Codebeispiel zeigt, wie Sie einen nicht verankerten Kommentar erstellen:
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()
Auf Kommentare antworten
Verwenden Sie die Methode create für die Ressource replies mit den Parametern fileId und commentId, um einem Kommentar eine Antwort hinzuzufügen. Im Anfragetext wird das Feld content verwendet, um die Antwort hinzuzufügen.
Die Antwort wird als Nur-Text eingefügt, aber der Antworttext enthält ein Feld htmlContent mit für die Anzeige formatiertem Inhalt.
Die Methode gibt die im Feld fields aufgeführten Felder zurück.
Ersuchen
In diesem Beispiel werden die Pfadparameter fileId und commentId sowie mehrere Felder angegeben.
POST https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID/replies?fields=id,comment
Anfragetext
{
"content": "This is a reply to a comment."
}Kommentar als geklärt kennzeichnen
Ein Kommentar kann nur durch eine Antwort auf einen Kommentar aufgelöst werden.
Verwenden Sie zum Schließen eines Kommentars die Methode create für die Ressource replies mit den Parametern fileId und commentId.
Im Anfragetext wird das Feld action verwendet, um den Kommentar zu schließen. Sie können auch das Feld content festlegen, um eine Antwort hinzuzufügen, mit der der Kommentar geschlossen wird.
Wenn ein Kommentar geklärt wird, wird die comments-Ressource in Drive als resolved: true markiert. Im Gegensatz zu gelöschten Kommentaren können gelöste Kommentare die Felder htmlContent oder content enthalten.
Wenn Ihre App einen Kommentar auflöst, sollte in der Benutzeroberfläche angezeigt werden, dass der Kommentar bearbeitet wurde. Beispiele:
- Weitere Antworten sind nicht zulässig und alle vorherigen Antworten sowie der ursprüngliche Kommentar werden ausgeblendet.
- Geklärte Kommentare ausblenden.
Ersuchen
In diesem Beispiel werden die Pfadparameter fileId und commentId sowie mehrere Felder angegeben.
POST https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID/replies?fields=id,comment
Anfragetext
{
"action": "resolve",
"content": "This comment has been resolved."
}Kommentar erhalten
Verwenden Sie die Methode get für die Ressource comments mit den Parametern fileId und commentId, um einen Kommentar zu einer Datei abzurufen. Wenn Sie die Kommentar-ID nicht kennen, können Sie mit der Methode list alle Kommentare auflisten.
Die Methode gibt eine Instanz einer comments-Ressource zurück.
Wenn Sie gelöschte Kommentare in die Ergebnisse einbeziehen möchten, setzen Sie den Abfrageparameter includedDeleted auf true.
Ersuchen
In diesem Beispiel werden die Pfadparameter fileId und commentId sowie mehrere Felder angegeben.
GET https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment,modifiedTime,resolved
Kommentare auflisten
Verwenden Sie die Methode list für die Ressource comments mit dem Parameter fileId, um Kommentare zu einer Datei aufzulisten. Die Methode gibt eine Liste von Kommentaren zurück.
Übergeben Sie die folgenden Abfrageparameter, um die Paginierung von Kommentaren anzupassen oder Kommentare zu filtern:
includeDeleted: Legen Sietruefest, um gelöschte Kommentare einzubeziehen. Gelöschte Kommentare enthalten nicht die FelderhtmlContentodercontent.pageSize: Die maximale Anzahl der Kommentare, die pro Seite zurückgegeben werden sollen.pageToken: Ein Seitentoken, das von einem vorherigen Listenaufruf empfangen wurde. Geben Sie dieses Token an, um die nachfolgende Seite abzurufen.startModifiedTime: Der Mindestwert des FeldsmodifiedTimefür die Ergebnisbemerkungen.
Ersuchen
In diesem Beispiel geben wir den Pfadparameter fileId, den Abfrageparameter includeDeleted und mehrere Felder an.
GET https://www.googleapis.com/drive/v3/files/FILE_ID/comments?includeDeleted=true&fields=(id,comment,kind,modifiedTime,resolved)
Kommentar aktualisieren
Verwenden Sie zum Aktualisieren eines Kommentars zu einer Datei die Methode update für die Ressource comments mit den Parametern fileId und commentId. Im Anfragetext wird das Feld content verwendet, um den Kommentar zu aktualisieren.
Das boolesche Feld resolved in der Ressource comments ist schreibgeschützt. Ein Kommentar kann nur durch eine Antwort auf den Kommentar geschlossen werden. Weitere Informationen finden Sie unter Kommentar bearbeiten.
Die Methode gibt die Felder zurück, die im Abfrageparameter fields aufgeführt sind.
Ersuchen
In diesem Beispiel werden die Pfadparameter fileId und commentId sowie mehrere Felder angegeben.
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID?fields=id,comment
Anfragetext
{
"content": "This comment is now updated."
}Kommentare löschen
Wenn Sie einen Kommentar zu einer Datei löschen möchten, verwenden Sie die Methode delete für die Ressource comments mit den Parametern fileId und commentId.
Wenn ein Kommentar gelöscht wird, wird die Kommentarressource in Drive als deleted: true markiert. Gelöschte Kommentare enthalten die Felder htmlContent oder content nicht.
Ersuchen
In diesem Beispiel geben wir die Pfadparameter fileId und commentId an.
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID/comments/COMMENT_ID