簡體   English   中英

我可以使用PHP客戶端(或完全可以!)在Google Sheets api v4中按標題訪問電子表格嗎?

[英]Can I access a Spreadsheet by Title in Google Sheets api v4 using the PHP client (or at all!)?

我們過去經常通過php訪問Google電子表格:-

$spreadsheetService = new SpreadsheetService();
$spreadsheetFeed = $spreadsheetService->getSpreadsheets();
$spreadsheet = $spreadsheetFeed->getByTitle($spreadsheetTitle);

但是我看不到通過v4 api進行此操作的任何示例。 此getByTitle功能是否已刪除?

在我看來,就像它一樣。 但是我認為,作為一種變通辦法,可能有一些方法來獲取經過身份驗證的Google_Client的可用電子表格的列表,該列表將列出電子表格ID和標題-這將允許我通過抓取ID以編程方式將現有代碼更新為新的api以這種方式-但我也找不到類似的東西。

有沒有人遇到此問題並找到解決方案?


對於任何其他遇到此問題的人 (有可能在遷移到v4時), 這是一個可行的解決方案 :-

....

$this->spreadsheetService = new Google_Service_Sheets($client);
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);
$googleDrive = new Google_Service_Drive($client);
$spreadsheetId = "";

$parameters = [];
//$parameters['q'] = urlencode("mimeType = 'application/vnd.google-apps.spreadsheet'");

$googleDriveFiles = $googleDrive->files->listFiles($parameters);
$files = $googleDriveFiles['files'];

foreach($files as $file){
   if ($file['name'] === $spreadsheetTitle){
       $spreadsheetId = $file['id'];
       break;
   }
}

$range = $worksheetTitle;
$worksheet = $this->spreadsheetService->spreadsheets_values->get($spreadsheetId, $range);
...

您會注意到注釋掉的mimeType參數設置。 不幸的是,盡管我可以在Google控制台的“ q”參數中添加mimeType,但是我無法通過php包裝程序使它起作用。 如果有人找到了解決方法,請告訴我,我將更新此解決方案...

您可以將Drive.Files.list與查詢參數一起使用,然后使用Spreadsheets.get上返回的ID 來“打開”電子表格

要了解有關q參數的更多信息,請閱讀本文檔

例如,要按MimeType和標題進行過濾,您可以執行name = 'yourname' and mimeType = 'application/vnd.google-apps.spreadsheet'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM