Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接Go中Google日历API的凭据_Go_Google Api_Google Calendar Api_Google Oauth - Fatal编程技术网

连接Go中Google日历API的凭据

连接Go中Google日历API的凭据,go,google-api,google-calendar-api,google-oauth,Go,Google Api,Google Calendar Api,Google Oauth,我正在转换一个PHP应用程序来访问谷歌日历。我用这个开始 一切都进行得很顺利,但当我运行quickstart.go时,出现以下错误: 无法将客户端机密文件解析为config:oauth2/google:missing 在client_credentials.json退出状态1中重定向URL client\u secret.json的内容是: { "installed":{ "client_id":"***********content.com", "proj

我正在转换一个PHP应用程序来访问谷歌日历。我用这个开始

一切都进行得很顺利,但当我运行
quickstart.go
时,出现以下错误:

无法将客户端机密文件解析为config:oauth2/google:missing 在client_credentials.json退出状态1中重定向URL

client\u secret.json
的内容是:

{  
   "installed":{  
      "client_id":"***********content.com",
      "project_id":"*******",
      "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.json
文件位于我的GOPATH的根目录下,如步骤中所示

我已经为我的PHP应用程序准备了一个
OAuth2.0客户端ID
,它在PHP中运行良好。我只想在一个新的Go应用程序中使用它来访问多个用户日历,但是当我下载附加到该ID的json文件时,我得到了上面的错误。也许
quickstart.go
不适合这种用法


任何提示?

当您在对话框中创建OAuth凭据时,最初会提示您“配置您的OAuth客户端”,您可以在“Web应用程序”、“桌面应用程序”等之间进行选择

根据最初选择的类型,为生成的OAuth凭据获取的
client.json
可能不包含“返回URL”

例如,对于“Web应用程序”
client.json
没有重定向URL:

{
  "web": {
    "client_id": "x.apps.googleusercontent.com",
    "project_id": "x",
    "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": "x"
  }
}
而对于“桌面应用程序”,它有:


Go oauth.google模块总是需要一个返回URI:

首先想到的是客户端机密json看起来很奇怪,您创建了哪种类型的凭据?如果我记得的话,它是使用google Developers控制台创建的。好的,我已经创建了一个新的服务帐户密钥。附加到该密钥的json文件产生此错误
无法将客户端机密文件解析为config:oauth2/google:no credentials found
。这是您的问题,那么代码是针对oauth2而不是服务帐户的,请创建oauth2凭据,然后重试。我的PHP应用程序已经有了“oauth2.0客户端ID”,可以在PHP中正常工作。我只想在一个新的Go应用程序中使用它来访问多个用户日历,但是当我下载附加到该ID的json文件时,我得到了上面我的OP中提到的错误。也许
quickstart.go
不适合这种用法。(OP中此评论的副本供参考)
{
  "installed": {
    "client_id": "x.apps.googleusercontent.com",
    "project_id": "x",
    "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": "x",
    "redirect_uris": [
      "urn:ietf:wg:oauth:2.0:oob",
      "http://localhost"
    ]
  }
}