无法读取未定义的属性'client_secret'

时间:2016-07-20 17:51:43

标签: node.js google-drive-api

我尝试按照https://developers.google.com/google-apps/activity/v1/quickstart/nodejs

的说明使用Node.js创建示例程序

我在尝试运行时发出错误,指出无法读取未定义的属性'client_secret'。

寻找宝贵的建议。

提前致谢。

6 个答案:

答案 0 :(得分:5)

var clientSecret = credentials.installed.client_secret; 在此行中,凭据指向client_secret.json,因此必须“安装”第一个密钥。在我的情况下,密钥是“web”,这导致错误。我刚刚将关键“web”重命名为“已安装”。

答案 1 :(得分:3)

enter image description here

您似乎错过了Step 1: Turn on the Google Apps Activity API

创建凭据后:

  

F。单击右侧的file_download(下载JSON)按钮   客户ID。

     

克。将此文件移动到您的工作目录并重命名   client_secret.json。把它放在你的项目文件夹中。

答案 2 :(得分:2)

尝试选择应用程序类型“其他”。 选择“帮助我选择”选项,然后可以在其中选择其他应用程序类型。 这样,您的client_secret.json将具有名为“ installed”的变量。

答案 3 :(得分:0)

您的client_secret.json文件需要包含以下行:

"redirect_uris": ["urn:ietf:wg:oauth:2.0:oob", "http://localhost"]

而不是如下所示的行:

"javascript_origins":
    [
      "http://localhost:8080",
      "http://localhost:1453",
      "http://127.0.0.1:1453",
      "http://localhost"
    ]

此外,您可能希望将client_secret.json中的链头从web更改为installed,反之亦然。

答案 4 :(得分:0)

我遇到了这个问题,但我的凭证文件类型错误。我最初使用" Web服务器(Nodejs)......",它有" web"标题而不是"已安装",但当我再次执行此操作并选择" Windows UI(cmd行)"时,我得到的文件格式正确。

答案 5 :(得分:0)

由于没有名为“ installed”的密钥,因此将其解析为undefined

credentials.json中,将密钥“ web”更改为“已安装”。可能是文档需要从Google的角度进行更改。

之前

enter image description here

之后

enter image description here