實作:留言

系統已不再支援 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 授權。

以下是新增影片留言的示例要求。

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 參數設為 publishedrejected。如果要拒絕留言,您也可以將 banAuthor 參數設為 true,防止留言者在頻道或影片中發布其他留言。

注意:API 不會提供列出或探索遭拒留言的方式。不過,如果您知道留言的專屬 ID,仍可將遭拒留言的審核狀態變更為 published。此外,一旦留言的審核狀態更新為 publishedrejected,就無法再變更為 heldForReview

移除留言

本範例說明如何刪除留言。這個範例包含以下步驟: