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
该请求会插入下方所示的资源。如需在 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