[英]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.