如何修复Google Calendar API错误

时间:2016-05-04 09:15:56

标签: node.js google-api google-calendar-api

我关注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)

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文件

  
      
  1. 使用此向导在Google Developers Console中创建或选择项目并自动启用API。单击继续,然后转到凭据。
  2.   
  3. 在页面顶部,选择OAuth同意屏幕标签。选择电子邮件地址,输入产品名称(如果尚未设置),然后单击“保存”按钮。
  4.   
  5. 选择“凭据”选项卡,单击“创建凭据”按钮,然后选择“OAuth客户端ID”。
  6.   
  7. 选择应用类型其他,输入名称" Google Calendar API快速入门",然后点击创建按钮。
  8.   
  9. 单击“确定”关闭生成的对话框。
  10.   
  11. 单击客户端ID右侧的file_download(下载JSON)按钮。
  12.   
  13. 将此文件移至工作目录并将其重命名为client_secret.json。
  14.   

我希望这会有所帮助。古德勒克:)

答案 2 :(得分:1)

如果在客户端ID创建页面中选择应用程序类型时选中“其他”(如教程中所述),则无需修改原始代码(粘贴文本的第4步)