グラフAPIバージョン

コメント /{comment-id}

commentは、Facebook上のさまざまな種類のコンテンツに対して付けることができます。ほとんどのグラフAPIノードには、そのオブジェクトに対する全コメントのリストを取得するための/commentsエッジがあります。/{comment-id}ノードは、単一のcommentを返します。

読み取り

新しいページエクスペリエンス

このAPIは、新しいページエクスペリエンスでサポートされています。

アクセス許可

  • 一般 - コメントを読むには、一般に、コメント追加対象のオブジェクトを表示するために必要とされるものと同じアクセス許可が必要です。

  • 返信 - 別のコメントへの返信であるコメントの場合、必要なアクセス許可が親コメントの追加対象オブジェクトに適用されます。

  • ページ所有のコメントと返信 - ページ所有のコメントや返信の場合、ユーザー情報を応答に含めるのであれば、ページアクセストークンを使う必要があります。

ページ投稿のコメントIDフォーマット{page-id}_{post_id}_{comment-id}は廃止されました。代わりに{pagepost-id}_{comment-id}フォーマットを使用してください。

グラフAPIエクスプローラ
GET /v21.0/{comment-id} 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(
    '/{comment-id}',
    '{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(
    "/{comment-id}",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{comment-id}",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{comment-id}"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

フィールド

プロパティ名 説明

id

コメントID

string

attachment

コメントに添付されたリンク、動画、スタンプ、または写真

StoryAttachment

can_comment

閲覧者がこのコメントに返信できるかどうか

bool

can_remove

閲覧者がこのコメントを削除できるかどうか

bool

can_hide

閲覧者がこのコメントを非表示にできるかどうか。ページ管理者に対してのみ表示されます

boolean

can_like

閲覧者がこのコメントについて「いいね!」できるかどうか

boolean

can_reply_privately

閲覧者がこのコメントへの非公開返信を送信できるかどうか(ページ閲覧者のみ)

boolean

comment_count

このコメントへの返信の数

int32

created_time

このコメントの作成時刻

datetime

from

このコメントの作成者

User

like_count

このコメントが「いいね!」された回数

int32

message

コメントのテキスト

string

message_tags

messageテキスト内でタグ付けされたプロフィールの配列。

object[]

id

タグ付けされたプロフィールのID。

string

name

タグの中で使用されているテキスト。

string

type

どのタイプのプロフィールがタグ付けされているかを示します。

enum{user, page, group}

offset

Unicodeコードポイントで測定した場合の、message内のタグ付けされたテキストの最初の文字の位置。

integer

length

オフセットの後、このタグを構成するUnicodeコードポイントの数。

integer

object

投稿に対するコメントのうち、写真または動画が含まれるもの(ダイナミック投稿内のものを含む)。それ以外の場合、これは空です。

Object

parent

コメント返信の場合、これは返信先のコメントです。

Comment

permalink_url

コメントのパーマリンクURL。

呼び出しアプリにページの公開コンテンツへのアクセス機能しかない場合、バージョン20.0以降のクエリでは返されません。この変更は、2024年8月19日以降、すべてのバージョンのクエリに適用されます。

string

private_reply_conversation

非公開返信を伴うコメントの場合、ページとコメント作者の間のスレッドを取得します(ページ閲覧者のみ)

Conversation

user_likes

閲覧者がこのコメントについて「いいね!」できるかどうか。

bool

公開

コメントは、/commentsエッジがノード上に存在すれば、それを使って公開できます。

削除

コメントは、以下のエンドポイントを使って削除できます。

DELETE /v21.0/{comment-id} HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->delete(
    '/{comment-id}',
    array (),
    '{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(
    "/{comment-id}",
    "DELETE",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{comment-id}",
    null,
    HttpMethod.DELETE,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{comment-id}"
                                      parameters:params
                                      HTTPMethod:@"DELETE"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

新しいページエクスペリエンス

このAPIは、新しいページエクスペリエンスでサポートされています。

要件

ページによって投稿されたコメントを削除するには、次のものが必要です。

  • そのページに対してMODERATEタスクを実行できる人によって要求されるページアクセストークン
  • pages_read_engagementアクセス許可
  • pages_manage_engagementアクセス許可

ユーザーまたは別のページによって投稿されたコメントを削除するには、次のものが必要です。

  • そのページに対してMODERATEタスクを実行できる人によって要求されるページアクセストークン
  • pages_manage_engagementアクセス許可
  • pages_read_user_contentアクセス許可

制限

レビューはページ投稿ではないため、レビューに対するコメントをページによって削除することはできません。

応答

成功した場合は、次のようになります。

{
  "success": true
}

成功しなかった場合は、関連するエラーメッセージが返されます。

更新

コメントは、以下のエンドポイントを使って編集できます。

POST /v21.0/{comment-id} 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(
    '/{comment-id}',
    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(
    "/{comment-id}",
    "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(),
    "/{comment-id}",
    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:@"/{comment-id}"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

新しいページエクスペリエンス

このAPIは、新しいページエクスペリエンスでサポートされています。

アクセス許可

  • そのページに対してMODERATEタスクを実行できる人によって要求されるページアクセストークン
  • pages_read_engagementアクセス許可
  • pages_manage_engagementアクセス許可

コメントを非表示にする

投稿に対するほとんどのコメントは非表示にできますが、以下は例外です。

  • ページによって作成されたコメント
  • ページの管理者によって作成されたコメント
  • ユーザーの投稿に対してページによって作成されたコメント。投稿はユーザーによって所有されています。
  • ページに対するあるユーザーの投稿に対して別のユーザーによって作成されたコメント。投稿はユーザーによって所有されています。
  • イベントクリエイターによって作成されたコメント。投稿はイベントクリエイターによって所有されています。
  • Facebookグループによって作成されたコメント。投稿はそのグループによって所有されています。
  • レビューにおいて誰かによって作成されたコメント

フィールド

更新する際に、attachment_urlattachment_idmessageattachment_share_urlのいずれか1つを指定する必要があります。

メッセージまたは添付のいずれかを含める必要があります。urlattachment_idattachment_share_urlのいずれかを添付することができます。idurlを共に含めることができます。attachment_share_urlを含める場合、他のものを含めることはできません。

更新では、オリジナルのコンテンツにあった値をすべて含める必要があります。含めなかった値がある場合、その値は更新後にコンテンツから削除されます。例えば、attachment_urlによって指定された画像が含まれるコメントを更新したのに、その画像を更新に含めなかった場合、その画像は削除されます。

更新では、/object/commentsの公開セクションにあるリストに示されているフィールドがサポートされます。それにはattachment_urlattachment_idmessagesourceが含まれます。これらのフィールドについて詳しくは、ドキュメントをご覧ください。

更新では、is_hiddenフィールドもサポートされます。そのドキュメントについては、こちらをご覧ください。

名前 説明

is_hidden

このコメントが非表示になっているか、表示されるか。いずれにしてもオリジナルの投稿者はこのコメントを表示できます。また、ページ管理者やコメント内でタグ付けられている人も表示できます

boolean

応答

成功すると、次の情報を含む応答を受け取ります。また、このエンドポイントはリードアフターライトをサポートしており、読み取り操作で返されたフィールドをすぐに返すことができます。

{
  "success": true
}

成功しなかった場合は、該当するエラーメッセージが返されます。

エッジ

プロパティ名 説明
/comments

このコメントへの返信コメント。

Edge<Comment>
/likes

このコメントに「いいね!」した人。

Edge<Profile>
/reactions

この投稿にリアクションした人。

Edge<Reaction>
/private_replies

このコメントへの非公開メッセージ返信を送信するために使用されます(ページ閲覧者のみ)。

Edge<Message>