[英]How to write to a sheet with Google Sheets API without oAuth consent screen
我正在 PHP 中编写一个脚本,以自动化从数据库中获取数据并将其插入谷歌表格的过程。 由于它将以 15 分钟的间隔运行,并且 Oauth 同意屏幕并不是最好的选择。 是否有另一种选择来获得必要的授权来写入工作表而无需通过浏览器登录?
我在文档和在线看到的大多数示例都使用同意屏幕。 如果我试试这个:
$client = new Google_Client();
$service = new Google_Service_Sheets($client);
这将与文本到语音转换 API 我得到这个(自然):
> PHP Fatal error: Uncaught Google\Service\Exception: { "error": {
> "code": 401,
> "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid
> authentication credential. See
> https://developers.google.com/identity/sign-in/web/devconsole-project.",
> "errors": [
> {
> "message": "Login Required.",
> "domain": "global",
> "reason": "required",
> "location": "Authorization",
> "locationType": "header"
> }
> ],
> "status": "UNAUTHENTICATED" } }
错误消息中的链接只是引导您完成同意屏幕。 从我在网上可以找到的内容来看,如果我只读取一个文件不会有问题,但是写入它,即使我将工作表设置为公开,也需要身份验证。
注意:这一切都在 Gcloud VM 实例中运行
您可以使用服务帐户,然后与该服务帐户共享工作表。
这应该给你一个使用的钥匙。 这是您的 client_secret.json。 利用
$client->setAuthConfig('./client_secret.json')
或$client->setAuthConfigFile('./client_secret.json')
取决于您使用的 php google api 客户端的版本。
此外,请确保使用
$client->setScopes([\Google_Service_Sheets::SPREADSHEETS]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.