2

Я загружаю видео на Youtube, а затем пытаюсь добавить его в список воспроизведения. Вставка плей-листа не выглядит странно. Вот мой код:playlistItems.insert сбой в Node.js googleapi youtube

var options = { 
        'part' : 'snippet', 
        'snippet' : { 
         'playlistId' : playlistId, 
         'resourceId' : { 
          'kind'  : 'youtube#video', 
          'videoId' : videoId 
         } 
        }, 
        status : { 
         privacyStatus : 'unlisted' 
        } 
       }; 

      console.log('options : ' + JSON.stringify(options)); 

      youtube.playlistItems.insert(options, function(listErr, listResponse){ 

       console.log(JSON.stringify(listErr)); 
       console.log(JSON.stringify(listResponse)); 

      }); 

Я всегда получаю один и тот же ответ:

{"errors":[{"domain":"youtube.playlistItem","reason":"playlistIdRequired","message":"Playlist id not specified."}],"code":400,"message":"Playlist id not specified."} 

Кто-нибудь есть какие-либо идеи, что я делаю не так? Любая помощь будет высоко ценится. Я использую googleapi Node.js sdk.

ответ

4

У меня была аналогичная проблема, и я ознакомился с исходным кодом и понял, что тело вызова API должно быть ниже options.resource. Так что ваши варианты объекта должен выглядеть следующим образом:

var options = { 
    "part" : "snippet", 
    "resource" : { 
     "snippet" : { 
      "playlistId" : playlistId, 
      "resourceId" : { 
       "kind" : "youtube#video", 
       "videoId" : videoId 
       } 
      } 
     } 
    } 

отметить также, что я изменил объект для использования в двойных кавычках, так как options.resource, как ожидается, будет действительным в формате JSON. Я также удалил свойство status, поскольку он не указан в качестве параметра на справочной странице API. https://developers.google.com/youtube/v3/docs/playlistItems/insert

+0

Конверсия JSON автоматически укажет ключи для вас. Двойное цитирование ключей в вашем javascript-объекте вообще не помогает. – JoshWillik