実装: コメント

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

このリクエストにより、次のリソースが挿入されます。APIs 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 スニペットが含まれています。APIs 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