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 2015-10-21 02:12:02