実装: コメント

comments.markAsSpam メソッドはサポートされなくなりました。

以下の例は、YouTube Data API(v3)を使用してコメントに関連する機能を実行する方法を示しています。

動画のコメントを取得する

動画のコメント スレッドのリストを取得するには、commentThreads.list メソッドを呼び出します。リクエストで次のパラメータ値を設定します。

  • part: 最上位のコメントのみを取得する場合はパラメータ値を snippet に、最上位のコメントへの返信も取得する場合は snippet,replies に設定します。(commentThread リソースにコメントへの返信がすべて含まれているとは限りません。特定のコメントへの返信をすべて取得するには、comments.list メソッドを使用する必要があります)。

  • videoId: コメントを取得する動画の YouTube 動画 ID を指定します。

以下のリクエストは、2014 年の Google I/O カンファレンスの基調講演の動画(動画 ID は wtLJPvx7-ys)に関連するコメントとコメントへの返信を取得します。

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.commentThreads.list?
part=snippet,replies
&videoId=wtLJPvx7-ys

チャンネルに関するコメントまたはチャンネルに関連付けられたコメントを取得する

この API は、チャンネルに関するコメント スレッドを取得する機能、またはチャンネルに関連付けられているすべてのコメント スレッドを取得する機能をサポートしています。後者の場合、API にはチャンネルに関するコメントや、チャンネルの動画に関するコメントが含まれる可能性があります。

  • チャンネルに関するコメントを取得するには、動画のコメントを取得するの手順に沿って操作します。ただし、videoId パラメータを設定する代わりに、channelId パラメータを設定してチャンネルを識別します。
  • チャンネルに関連付けられたコメントを取得するには、動画のコメントを取得する手順に沿って操作します。ただし、videoId パラメータを設定する代わりに、allThreadsRelatedToChannelId パラメータを設定してチャンネルを識別します。

次のリクエストは、GoogleDevelopers YouTube チャンネルに関連付けられているすべてのコメント スレッドを取得します。

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.commentThreads.list?
part=snippet,replies
&allThreadsRelatedToChannelId=UC_x5XG1OV2P6uZZ5FSM9Ttw

コメントを追加しています

commentThreads.insert メソッドを呼び出して、チャンネルまたは動画に新しいトップレベルのコメントを追加します。リクエストの part パラメータ値を snippet に設定します。リクエストの本文は commentThread resource で、snippet.topLevelComment[].snippet[].textOriginal プロパティにコメント テキストが含まれています。このリクエストは OAuth 2.0 を使用して承認する必要があります。

  • チャンネルにコメントを追加するには、snippet.channelId プロパティを使用してチャンネルを特定します。
  • 動画にコメントを追加するには、snippet.channelId プロパティを使用して、動画をアップロードしたチャンネルを特定します。また、snippet.videoId プロパティを使用して動画を識別します。

次のサンプル リクエストは、動画にコメントを追加します。

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.commentThreads.insert?
part=snippet

このリクエストは、以下に示すリソースを挿入します。

{
 "snippet": {
  "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
  "topLevelComment": {
   "snippet": {
    "textOriginal": "This video is awesome!"
   }
  },
  "videoId": "MILSirUni5E"
 }
}

コメントに返信する

コメントに返信するには、comments.insert メソッドを呼び出します。リクエストの part パラメータ値を snippet に設定します。リクエストの本文は comment resource で、snippet.textOriginal プロパティにコメント テキストが含まれています。snippet.parentId プロパティは、返信に関連付けられたコメントを識別します。その値は commentThread resource's ID です。このリクエストは OAuth 2.0 を使用して承認する必要があります。

次のサンプル リクエストは、既存のコメントに返信を追加します。

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.comments.insert?
part=snippet

このリクエストは、次のリソースを挿入します。API Explorer でリクエストを実行するには、snippet.parentId プロパティの値を使用して、返信に関連付けられた最上位のコメントを識別します。commentThread リソースでは、snippet.topLevelComment[].id プロパティはリソースの一意の ID を指定します。

{
  "snippet": {
    "parentId": "COMMENT_THREAD_ID",
    "textOriginal": "That is true."
  }
}

最上位のコメントまたはコメントへの返信を更新する

最上位のコメントのテキストまたは最上位のコメントへの返信のテキストを更新するには、comments.update メソッドを呼び出します。part パラメータの値を snippet に設定します。リクエストの本文の id プロパティで、変更するコメントと新しいコメント テキストを指定します。

  • 最上位のコメントを識別する commentThread リソースでは、snippet.topLevelComment[].id プロパティでコメントの一意の ID を指定します。
  • comment リソース(トップレベルのコメントまたはコメントへの返信を識別できる)では、id プロパティでコメントの一意の ID を指定します。

次のリクエストの例では、既存のコメントのテキストを更新します。

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.comments.update?
part=snippet

リクエストの本文には、以下に示す JSON スニペットが含まれています。API Explorer でリクエストを実行するには、id プロパティの値を設定して、更新するコメントを識別します。リクエストは、コメントの投稿者によって承認される必要があります。

{
  "id": "COMMENT_ID",
  "snippet": {
    "textOriginal": "That is true."
  }
}

コメントの管理ステータスを設定する

コメントの審査ステータスを設定するには、comments.setModerationStatus メソッドを呼び出します。このアクションは、チャンネル所有者がチャンネルまたはチャンネルの動画のコメントを管理するときに使用されます。

このメソッドを呼び出すときは、id パラメータの値を設定してコメントを識別します。また、moderationStatus パラメータを目的のステータスに設定します。コメントのステータスを調整できるのは、コメントが表示されているチャンネルの所有者のみです。

  • ステップ 1: 確認のために保留されているコメントを取得する

    commentThreads.list メソッドを呼び出して、チャンネルまたは動画のコメントを取得します。moderationStatus パラメータの値を heldForReview に設定します。API レスポンスを使用してコメントのリストを表示し、チャンネル所有者が各コメントを公開または拒否できるようにすることができます。

  • ステップ 2: コメントの審査ステータスを更新する

    comments.setModerationStatus メソッドを呼び出して、コメントのステータスを更新します。id パラメータの値を使用して、コメントの一意の ID を指定します。moderationStatus パラメータを published または rejected に設定します。コメントを拒否する場合は、banAuthor パラメータを true に設定して、その作成者がチャンネルまたは動画にコメントを追加できないようにすることもできます。

注: API には、拒否されたコメントを一覧表示したり、検出したりする方法はありません。ただし、不承認となったコメントの一意の ID がわかっている場合は、そのコメントの管理ステータスを published に変更できます。また、コメントの管理ステータスが published または rejected に更新されると、管理ステータスを heldForReview に戻すことはできません。

コメントを削除する

この例では、コメントを削除する方法を示します。この例の手順は次のとおりです。

  • ステップ 1: コメント ID を取得する

    上記の手順に沿って、動画またはチャンネルのコメントのリストを取得します。コメントを削除できるのはその作成者のみです。そのため、comment リソースの snippet.authorChannelId.value プロパティの値を認証済みユーザーのチャンネル ID と比較して、ユーザーがその特定のコメントを削除できるかどうかを判断する必要があります。

  • ステップ 2: コメントまたはコメント スレッドを削除する

    削除するコメント スレッドまたはコメントの ID を特定したら、comments.delete メソッドを呼び出してそのコメントを削除します。id パラメータ値を使用して、削除するコメント ID またはコメント スレッド ID を指定します。リクエストは OAuth 2.0 を使用して承認する必要があります。API Explorer でこのクエリをテストする場合は、以下のリクエストの id パラメータ値に有効なコメント ID またはコメント スレッド ID を代入する必要があります。

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.comments.delete?
    id=COMMENT_ID