我与Google客户支持部门进行了交谈,但他们没有找到关于这个问题的适当文档。是他们指引我来的。
非常简单,我试图使Google能够在用户日历中创建一个事件(并希望向其添加Google ),如本文所示:https://developers.google.com/calendar/api/guides/create-events。
我遵循Quickstart PHP代码示例,它首先指示通过composer安装SDK,并在PHP中授权Google。链接在这里:https://developers.google.com/calendar/api/quickstart/php。
该页提供的脚本(步骤2)最初失败(在步骤3期间),错误如下:
PHP Fatal error: Uncaught InvalidArgumentException: file "credentials.json" does not exist in /path/to/vendor/Google/google/apiclient/src/Client.php:984堆栈跟踪:#0 /path/to/app_root/quickstart.php(17):Google\Client->setAuthConfig('credentials.jso...') #1 /path/to/app_root/quickstart.php(63):/path/to/vendor/Google/google/apiclient/src/Client.php中抛出的getClient() #2 {main}
我按照下面的说明创建了一个服务帐户:
虽然这些说明没有包括创建服务帐户和生成JSON密钥的步骤,但我在网上找到了该解决方案,并由Google支持代理进行了验证。我下载并重命名了该文件,并将其放在脚本根目录中(尽管不完整的文档中也没有指定路径,但这已由Google支持代理进行了验证)。我再次运行了脚本,并收到了以下错误:
PHP Fatal error: Uncaught InvalidArgumentException: missing the required redirect URI in /path/to/vendor/Google/google/auth/src/OAuth2.php:694
Stack trace:
#0 /path/to/vendor/Google/google/apiclient/src/Client.php(406): Google\Auth\OAuth2->buildFullAuthorizationUri(Array)
#1 /path/to/app_root/quickstart.php(38): Google\Client->createAuthUrl()
#2 /path/to/app_root/quickstart.php(63): getClient()
#3 {main}
thrown in /path/to/vendor/Google/google/auth/src/OAuth2.php on line 694我尝试创建一个OAuth重定向URI并重新生成JSON键,但是也发生了同样的错误。下面是我从服务帐户KEYS部分下载的身份验证JSON文件,其中包含修改过的任何帐户特定信息:
{
"type": "service_account",
"project_id": "massive-clone-{REDACTED}",
"private_key_id": "{REDACTED}",
"private_key": "-----BEGIN PRIVATE KEY-----{REDACTED}\n-----END PRIVATE KEY-----\n",
"client_email": "calendar-api@massive-clone-{REDACTED}.iam.gserviceaccount.com",
"client_id": "{REDACTED}",
"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_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/calendar-api%40massive-clone-{REDACTED}.iam.gserviceaccount.com"
}虽然快速启动指南似乎在故障排除部分中解决了此问题,但由于步骤1中没有“按钮”,因此建议似乎不适用。
Uncaught :缺少所需的重定向URI 当使用的credentials.json文件包含错误类型的客户端ID时,会发生此错误。此代码需要一个类型为Other的OAuth客户端ID,它将在使用步骤1中的按钮时为您创建。如果创建自己的客户端ID,请确保选择正确的类型。
有人能帮助我理解如何获得适当的credentials.json文件吗?我不确定这个过程应该如何进行,但是Google支持代理说他们找不到任何文档,并指示我到这里来。如果我的问题需要用另一种方式来说明,请告知。
发布于 2022-05-24 03:50:28
您的代码试图使用服务帐户。该示例使用“使用OAuth客户端机密”。
https://stackoverflow.com/questions/72355851
复制相似问题