实现:注释

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 可能包含有关频道或频道任何视频的评论。

  • 如需检索有关频道的评论,请按照检索视频评论的说明进行操作。不过,您需要设置 channelId 参数来标识频道,而不是设置 videoId 参数。
  • 如需检索与频道相关的评论,请按照检索视频评论的说明进行操作。不过,您需要设置 allThreadsRelatedToChannelId 参数来标识频道,而不是设置 videoId 参数。

以下请求会检索与 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 进行授权。如果您要在 APIs Explorer 中测试此查询,则需要在以下请求中将 id 参数值替换为有效的评论 ID 或评论串 ID。

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