使用php api更新google sheet我已经使用https://console.developers.google.com/apis创建了servide accout密钥,并将该文件保存在我使用composer下载apiclient结构的根文件夹中。并与服务帐户中提供的客户客户电子邮件共享工作表,并授予其完全访问权限。以下是m用于更新的代码:
setReadPermissions("email", "public_profile")
问题是它在我的本地主机上工作正常。但是当我将文件夹上传到000webhost并从那里运行它时,出现以下错误:
捕获的异常:无法加载默认凭据。浏览至https://developers.google.com/accounts/docs/application-default-credentials了解更多信息
我是否需要使用 gcloud 。据我所知,我不需要 gcloud 即可使用Google API。而且,如果我需要使用gcloud来使此代码在我的000webhost网站(https://www.000webhost.com)上正常工作。
答案 0 :(得分:2)
您正在使用凭据文件的相对路径名。您需要使用完整路径。代码行:
$service_account_file = 'credentials.json';
应更改为:
$service_account_file = '/mysecrets/credentials.json';
将目录mysecrets
更改为所需的任何名称。如果这是Web服务器,请不要在服务器的html目录中找到该文件。
您还可以手动指定文件:
$client->setAuthConfig($service_account_file);
并删除这些行:
putenv('GOOGLE_APPLICATION_CREDENTIALS=' . $service_account_file);
$client->useApplicationDefaultCredentials();