我关注https://developers.google.com/google-apps/calendar/quickstart/nodejs#step_3_set_up_the_sample
但它没有起作用,输出低于此:
var clientSecret = credentials.installed.client_secret;
^
TypeError: Cannot read property 'client_secret' of undefined
at authorize (/Users/prangyy/myApp/quickstart.js:32:43)
at processClientSecrets (/Users/prangyy/myApp/quickstart.js:21:3)
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:404:3)
答案 0 :(得分:4)
将quickstart.js中的第34-36行更改为:
var clientSecret = credentials.web.client_secret;
var clientId = credentials.web.client_id;
var redirectUrl = credentials.web.redirect_uris[0];
(他们使用credentials.installed
而不是credentials.web
时出现错误,这是在client_secrets.json文件中显示的内容。)
答案 1 :(得分:1)
尝试检查Node.js Quickstart中的client_secret.json。
它应该包含clientID,auth_url,token_uri,auth_provider_x509_cert_url,client_secret,redirect_uris,javascript_origins。
{"web":{"client_id":"YOUR_CLIENT_ID","project_id":"google.com:my-project-1231","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://accounts.google.com/o/oauth2/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"YOUR_CLIENT_SECRET","redirect_uris":["YOUR_REDIRECT"],"javascript_origins":["YOUR_JAVA_ORIGIN"]}}
如果还没有,请按此操作获取client_secret.json
文件
- 使用此向导在Google Developers Console中创建或选择项目并自动启用API。单击继续,然后转到凭据。
- 在页面顶部,选择OAuth同意屏幕标签。选择电子邮件地址,输入产品名称(如果尚未设置),然后单击“保存”按钮。
- 选择“凭据”选项卡,单击“创建凭据”按钮,然后选择“OAuth客户端ID”。
- 选择应用类型其他,输入名称" Google Calendar API快速入门",然后点击创建按钮。
- 单击“确定”关闭生成的对话框。
- 单击客户端ID右侧的file_download(下载JSON)按钮。
- 将此文件移至工作目录并将其重命名为client_secret.json。
醇>
我希望这会有所帮助。古德勒克:)
答案 2 :(得分:1)
如果在客户端ID创建页面中选择应用程序类型时选中“其他”(如教程中所述),则无需修改原始代码(粘贴文本的第4步)