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