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
list
für die Ressourcerevisions
auf, um allerevisionID
fü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 Siehead
fürrevisionID
ein.Rufen Sie die Methode
create
für die Ressourcecomments
mit 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 Sietrue
fest, um gelöschte Kommentare einzubeziehen. Gelöschte Kommentare enthalten nicht die FelderhtmlContent
odercontent
.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 FeldsmodifiedTime
fü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