Недокументированная функция - gapi.client.youtube.commentThreads.insert


Когда я просматривал Google YouTube DATA API и обнаружил объект gapi.client.youtube.commentThreads.insert, я пытался его использовать, но я не знал, как его использовать, и документация по API данных о нем мало что говорит. этого Google использует функцию buildApiRequest для создания запроса.
Я пытался написать и запустить код, как это выше, но он возвращает ошибку 400

Код:

    var c = new gapi.client.youtube.commentThreads.insert(
    {
        "part":"snippet"
    },{
        'snippet.channelId': 'UC_x5XG1OV2P6uZZ5FSM9Ttw',
        'snippet.videoId':'NeF0zpT4gNE',
        'snippet.topLevelComment.snippet.textOriginal':'Hello from API'
    });
    c.execute();

отклик

{
 "error": {
  "errors": [
   {
    "domain": "youtube.commentThread",
    "reason": "channelOrVideoIdMissing",
    "message": "Each comment thread must be linked to a channel or video.\u003cul\u003e\u003cli\u003eIf the comment applies to a channel, make sure that the resource specified in the request body provides a value for the \u003ccode\u003e\u003ca href=\"/youtube/v3/docs/commentThreads#snippet.channelId\"\u003esnippet.channelId\u003c/a\u003e\u003c/code\u003e property. A comment that applies to a channel appears on the channels \u003cb\u003eDiscussion\u003c/b\u003e tab.\u003c/li\u003e\u003cli\u003eIf the comment applies to a video, make sure the resource specifies values for both the \u003ccode\u003e\u003ca href=\"/youtube/v3/docs/commentThreads#snippet.channelId\"\u003esnippet.channelId\u003c/a\u003e\u003c/code\u003e and \u003ccode\u003e\u003ca href=\"/youtube/v3/docs/commentThreads#snippet.videoId\"\u003esnippet.videoId\u003c/a\u003e\u003c/code\u003e properties. A comment that applies to a video appears on the videos watch page.\u003c/li\u003e\u003c/ul\u003e",
    "locationType": "other",
    "location": "body.snippet"
   }
  ],
  "code": 400,
  "message": "Each comment thread must be linked to a channel or video.\u003cul\u003e\u003cli\u003eIf the comment applies to a channel, make sure that the resource specified in the request body provides a value for the \u003ccode\u003e\u003ca href=\"/youtube/v3/docs/commentThreads#snippet.channelId\"\u003esnippet.channelId\u003c/a\u003e\u003c/code\u003e property. A comment that applies to a channel appears on the channels \u003cb\u003eDiscussion\u003c/b\u003e tab.\u003c/li\u003e\u003cli\u003eIf the comment applies to a video, make sure the resource specifies values for both the \u003ccode\u003e\u003ca href=\"/youtube/v3/docs/commentThreads#snippet.channelId\"\u003esnippet.channelId\u003c/a\u003e\u003c/code\u003e and \u003ccode\u003e\u003ca href=\"/youtube/v3/docs/commentThreads#snippet.videoId\"\u003esnippet.videoId\u003c/a\u003e\u003c/code\u003e properties. A comment that applies to a video appears on the videos watch page.\u003c/li\u003e\u003c/ul\u003e"
 }
}

1 ответ

Решение

Я нашел решение, я был глуп, потому что параметры должны передаваться объектом - вот пример для тех, кто будет использовать эту функцию.

var c = new gapi.client.youtube.commentThreads.insert(
    {
        "part": "snippet"
    },
    {
      "snippet": {
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "videoId": "NeF0zpT4gNE",
        "topLevelComment": {
          "snippet": {
            "textOriginal": "Hello from API"
          }
        }
      }
    }   
);
c.execute();
Другие вопросы по тегам