凭证连接谷歌日历API在Go



我正在转换一个PHP应用程序访问谷歌日历到Go。我是这样一步一步开始的。

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

无法解析客户端秘密文件配置:oauth2/google: missing在client_credentials中重定向URL。Json退出状态1

client_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的根目录,按照步骤

的指示。

我已经有一个OAuth 2.0 client ID为我的PHP应用程序,在PHP工作得很好。我只是想在一个新的Go应用程序中使用该应用程序来访问多个用户日历,但是当我下载附加到该ID的json文件时,我得到上面的错误。也许quickstart.go不适合这种用法。

提示吗?

当您在https://console.developers.google.com/apis/credentials创建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"
  }
}

While用于"桌面应用程序";它有:

{
  "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"
    ]
  }
}

The Go oauth。google模块总是需要一个返回URI: https://github.com/golang/oauth2/blob/0f29369cfe4552d0e4bcddc57cc75f4d7e672a33/google/google.go#L61

相关内容

  • 没有找到相关文章

最新更新