0

使用 Google 的 google-api-nodejs-client(官方 google 节点库),我在几个月前运行了这段代码。我把它放在一边。

googleapis.discover('youtube', 'v3').execute(function (err, client) {
    var request = client.youtube.playlists.insert({
         part: 'snippet,status',
         resource: {
             snippet: {
                 title: "hello",
                 description: "description"
             },
             status: {
                 privacyStatus: "private"
             }
          }
     });
    request.withAuthClient(oauth2Client).execute(function (err, res) {...

我已经重新启动了项目并通过 npm 下载了最新版本的库,现在当我运行上面的代码时,我系统地得到以下错误对象:

Object
     code: 400
     errors: Array[1]
         0: Object
             domain: "youtube.playlist"
             message: "Must specify playlist title."
             reason: "playlistTitleRequired"
         length: 1
              length: 1
     message: "Must specify playlist title."

根据文档和示例,这似乎是正确的谷歌示例代码

我已经逐步浏览了库代码,似乎请求没有正确构建,但在将其报告为可能的错误之前,我想询问蜂巢思维。

最近有人成功使用该库吗?谢谢。

4

2 回答 2

2

似乎节点库没有遵循 api 文档中的约定。当调用具有请求参数和body的api时,参数作为调用的第一个参数传入一个对象,body作为一个单独的对象作为对象的第二个参数。

在我的情况下,请求需要这样构建:

var request = client.youtube.playlists.insert(
    { part: 'snippet,status'},
    {
      snippet: {
          title: "hello",
          description: "description"
      },
      status: {
          privacyStatus: "private"
      }
    }
);
于 2013-12-30T22:56:07.153 回答
0

对于插入操作,值part应该是snippet和/或status

part: 'snippet,status',

有关更多详细信息,请查看此文档

于 2013-12-30T01:38:18.090 回答