Graph API-Version

/{object-id}/comments

Diese Referenz beschreibt die /comments-Edge, über die mehrere Graph API Nodes verfügen. Die Struktur und die Vorgänge sind für jeden Node gleich. Die folgenden Objekte verfügen über eine /comments-Edge:

Es ist möglich, dass Kommentarobjekte über eine /comments-Edge verfügen, die mit Antworten auf Kommentare bezeichnet wird. Sie weisen dieselbe Struktur auf, aber man sollte die Modifikatoren für diese Edges beachten.

Lesen

Gibt einen Kommentar zu einem Objekt zurück.

Das Feld id für den /PAGEPOST-ID/comments-Endpunkt wird für Apps, die die Funktion Zugriff auf öffentliche Seiteninhalte verwenden, nicht mehr zurückgegeben. Um auf Kommentar-IDs für Kommentare zu einem Seitenbeitrag zuzugreifen, musst du auf der abgefragten Seite die „MODERATE“-Aufgabe ausführen können. Diese Änderung gilt für v11.0+ und wird ab dem 7. September 2021 für alle Versionen eingeführt.

Neue Seitenversion

Folgende Objekte für /comments-Endpunkte werden für die neue Seitenversion unterstützt:

  • Album
  • Kommentar
  • Link
  • Seite
  • PagePost
  • Foto
  • Beitrag
  • PostComment

Berechtigungen

  • Dieselben Berechtigungen, die zum Anzeigen des übergeordneten Objekts erforderlich sind, sind auch zum Anzeigen der Kommentare zu diesem Objekt erforderlich.

Einschränkungen

  • Profilinformationen und Kommentare anderer Benutzer werden nicht zurückgegeben, wenn du auf Beiträge, Fotos, Alben, Videos, „Gefällt mir“-Angaben und Reaktionen von Nutzer*innen zugreifst, es sei denn dies wurde von Nutzer*innen autorisiert.
  • In einer Abfrage zurückgegebene Kommentare basieren auf der Standardfilterung. Um alle Kommentare abzurufen, die entsprechend deiner Berechtigungen zurückgegeben werden könne, lege den Parameter filter auf stream fest oder verwende das Feld order.
  • Eine neue Seite kann Kommentare auf neuen Seitenversionen oder klassischen Seitenversionen verfassen. Eine klassische Seitenversion kann jedoch keine Kommentare auf einer neuen Seite verfassen.
  • Bei den folgenden Nodes gibt der /comments-Endpunkt leere Daten zurück, wenn du sie mit einem Nutzer-Zugriffsschlüssel liest:
  • Das Feld id für den /PAGEPOST-ID/comments-Endpunkt wird für Apps, die die Funktion Zugriff auf öffentliche Seiteninhalte verwenden, nicht mehr zurückgegeben. Um auf Kommentar-IDs für Kommentare zu einem Seitenbeitrag zuzugreifen, musst du auf der abgefragten Seite die „MODERATE“-Aufgabe ausführen können.
  • Bei Objekten, die über Zehntausende Kommentare verfügen, stößt du beim Paginieren vielleicht auf Grenzen. Erfahre mehr zum Paginieren im Leitfaden zur Verwendung der Graph API.

Beispiel

Graph API Explorer
GET /v21.0/{object-id}/comments HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{object-id}/comments',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{object-id}/comments",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{object-id}/comments",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{object-id}/comments"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Parameter

GET /v21.0/{object-id}/comments?summary=1&filter=toplevel HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{object-id}/comments?summary=1&filter=toplevel',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{object-id}/comments",
    {
        "summary": true,
        "filter": "toplevel"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putBoolean("summary", true);
params.putString("filter", "toplevel");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{object-id}/comments",
    params,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"summary": @YES,
  @"filter": @"toplevel",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{object-id}/comments"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];
Parameter Beschreibung

summary

bool

Eine Zusammenfassung der Metadaten zu den Kommentaren des Objekts. Es ist wichtig, dass diese Metadaten order umfassen. Dies gibt an, wie die Kommentare sortiert werden.

filter

enum { toplevel, stream }

Wenn Personen auf einen Kommentar antworten können, kannst du Kommentare nach übergeordneten Kommentaren, Kommentaren, die direkt zu dem Post verfasst wurden, oder nach ihrer chronologischen Reihenfolge filtern.

  • toplevel – Dies ist der Standard. Es werden alle übergeordneten Kommentare in chronologischer Reihenfolge, so, wie sie in Facebook angeordnet sind, zurückgegeben. Dieser Filter ist nützlich für die Anzeige von Kommentaren in derselben Struktur, wie sie in Facebook angeordnet sind.
  • stream – Kommentare aller Ebenen werden in der Reihenfolge chronological angezeigt. Dieser Filter ist nützlich für Kommentarmoderationstools, wo es hilfreich ist, eine chronologische Liste aller Kommentare zu sehen.

Felder

Ein Array von Kommentarobjekten ist zusätzlich zu den folgenden Feldern in der Anfrage enthalten, wenn auf summarytrue zutrifft.

Feld Beschreibung

order

enum { chronological, reverse_chronological }

Reihenfolge, in der die Kommentare zurückgegeben wurden.

  • chronological: Kommentare geordnet, ältester Kommentar zuerst.
  • reverse_chronological: Kommentare geordnet, neuester Kommentar zuerst.

total_count

int32

Die Anzahl der Kommentare zu diesem Node. Dieser Wert ändert sich abhängig vom verwendeten filter (dort, wo Antworten auf Kommentare verfügbar sind):

  • wenn der filterstream ist, dann ist der total_count die Anzahl aller Kommentare (inklusive Antworten) zum Node.
  • wenn der filtertoplevel ist, dann ist der total_count die Anzahl aller übergeordneten Kommentare zum Node.

Hinweis: Der total_count kann aufgrund des Datenschutzes oder des Löschens von Kommentaren größer als oder gleich der aktuellen Anzahl an zurückgegebenen Kommentaren sein.

Veröffentlichen

Veröffentlichen neuer Kommentare zu einem Objekt.

Neue Seitenversion

Folgende Objekte für /comments-Endpunkte werden für die neue Seitenversion unterstützt:

  • Kommentare
  • PagePosts
  • Foto
  • Beitrag
  • PostComment
  • Video

Berechtigungen

  • Ein Seiten-Zugriffsschlüssel, der von einer Person angefordert wurde, die auf der Seite die MODERATE-Aufgabe ausführen kann.
  • Die pages_manage_engagement-Berechtigung

Beachte, dass das can_comment-Feld zu einzelnen Kommentarobjekten angibt, ob es möglich ist, auf diesen Kommentar zu antworten.

Beispiel

POST /v21.0/{object-id}/comments HTTP/1.1
Host: graph.facebook.com

message=This+is+a+test+comment
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{object-id}/comments',
    array (
      'message' => 'This is a test comment',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{object-id}/comments",
    "POST",
    {
        "message": "This is a test comment"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("message", "This is a test comment");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{object-id}/comments",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"message": @"This is a test comment",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{object-id}/comments"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Felder

Name Beschreibung

attachment_id

string

Eine optionale ID eines unveröffentlichten Fotos (siehe no_story-Feld in /{user-id}/photos), das auf Facebook hochgeladen wurde, um als Fotokommentar eingefügt zu werden. Bei der Veröffentlichung musst du attachment_id, attachment_share_url, attachment_url, message oder source angeben.

attachment_share_url

string

Die URL eines GIF, das als animierter GIF-Kommentar eingefügt wird. Bei der Veröffentlichung musst du attachment_id, attachment_share_url, attachment_url, message oder source angeben.

attachment_url

string

Die URL eines Bildes, das als Fotokommentar eingefügt wird. Bei der Veröffentlichung musst du attachment_id, attachment_share_url, attachment_url, message oder source angeben.

source

multipart/form-data

Ein Foto, als Formulardaten codiert, das als Fotokommentar verwendet wird. Bei der Veröffentlichung musst du attachment_id, attachment_share_url, attachment_url, message oder source angeben.

message

string

Der Kommentartext. Bei der Veröffentlichung musst du attachment_id, attachment_share_url, attachment_url, message oder source angeben.

Erwähne andere Facebook-Seiten in deinem message-Text unter Verwendung der folgenden Syntax:

@[page-id]

Die Verwendung dieses Features muss überprüft werden.

Rückgabetyp

Bei Erfolg erhältst du eine JSON-Antwort mit der neu erstellten Kommentar-ID. Darüber hinaus unterstützt dieser Endpunkt read-after-write. Außerdem können beliebige bei Lesevorgängen zurückgegebenen Felder sofort ausgegeben werden.

{
  "id": "{comment-id}"
}

Aktualisieren

Mit dieser Edge ist das Aktualisieren nicht möglich.

Löschen

Mit dieser Edge ist das Löschen nicht möglich.

Lösche einzelne Parameter, indem du den /comment-id-Endpunkt verwendest.