実装: コメント

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 パラメータを設定してチャネルを識別します。

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

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