gpt4 book ai didi

clasp - 检索访问 token : TypeError: Cannot read property 'project_id' of undefined 时出错

转载 作者:行者123 更新时间:2023-12-05 08:53:08 28 4
gpt4 key购买 nike

我是 clasp 的新手。

通过以下方式初始登录后:扣登入我可以登录到 script.google.com接下来,我创建了一个项目并通过以下方式推送文件:扣压

现在,我已经退出使用:扣环注销

此处需要帮助:现在,如果我正在尝试:

clasp 登录 --creds ./.clasp.json

我收到“检索访问 token 时出错:TypeError:无法读取未定义的属性‘project_id’”。

请指导我如何通过 --creds 登录?

最佳答案

TLDR:您使用的是配置文件 ( .clasp.json ),而不是来自 Google Cloud 项目控制台的凭据文件( creds.json 或其他文件)。


当您登录时,凭证的默认存储在名为 .clasprc.json 的文件中~目录(Windows 上为 C:\Users\<user>\):

$ clasp login
Logging in globally...
🔑 Authorize clasp by visiting this url:
https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&.....

Authorization successful.

Default credentials saved to ~\.clasprc.json (C:\Users\<user>\.clasprc.json).

请注意,此文件 ( .clasprc.json ) 与 .clasp.json 不同.

clasprc.json格式:

据称此文件的内容取决于身份验证类型,全局或本地:

// GLOBAL: clasp login will store this (~/.clasprc.json):
{
"access_token": "XXX",
"refresh_token": "1/k4rt_hgxbeGdaRag2TSVgnXgUrWcXwerPpvlzGG1peHVfzI58EZH0P25c7ykiRYd",
"scope": "https://www.googleapis.com/auth/script.projects https://www.googleapis.com/auth/script ...",
"token_type": "Bearer",
"expiry_date": 1539130731398
}

本地身份验证存储客户端密码/等,如果您计划使用 clasp run ,通常需​​要这样做。通过 Google Apps 脚本 API 执行功能。

// LOCAL: clasp login will store this (./.clasprc.json):
{
"token": {
// as above
},
// Settings
"oauth2ClientSettings": {
"clientId": "807925367021-infvb16rd7lasqi22q2npeahkeodfrq5.apps.googleusercontent.com",
"clientSecret": "9dbdeOCRHUyriewCoDrLHtPg",
"redirectUri": "http://localhost"
},
"isLocalCreds": true
}

(实际上,这两个文件都将具有 LOCAL 文件的格式——属性 tokenoauth2ClientSettingsisLocalCreds——尽管对于全局登录,isLocalCreds 的值将为 false .)

clasp.json格式:

{
"scriptId": "",
"rootDir": "build/",
"projectId": "project-id-xxxxxxxxxxxxxxxxxxx",
"fileExtension": "ts",
"filePushOrder": ["file1.ts", "file2.ts"]
}

请注意 clasp.json脚本文件的配置clasprc.json 存储 用户的凭据/授权都不是它们都不是用于本地登录的适当凭据文件。

解决错误

您收到的特定错误是由于您提供了不正确的文件。您提供的“凭据”文件没有所需的属性,因此当 clasp 尝试 read from that property

  console.log(LOG.CREDS_FROM_PROJECT(options.creds.installed.project_id));

你得到错误:

Error retrieving access token: TypeError: Cannot read property 'project_id' of undefined

您可以从 Apps 脚本项目的 Google Cloud 项目页面获取正确的凭据文件,即 https://console.cloud.google.com/apis/credentials?authuser=0&project=<some project id>

此文件的格式为:

{
"installed":{
"client_id":"<stuff>.apps.googleusercontent.com",
"project_id":"<some project id>",
"auth_uri":"https://accounts.google.com/o/oauth2/auth",
"token_uri":"https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs",
"client_secret":"<more stuff>",
"redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]
}
}

如果您的凭据文件没有这种格式,您将无法使用它在本地登录。

关于clasp - 检索访问 token : TypeError: Cannot read property 'project_id' of undefined 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54533397/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com