【问题标题】:Accessing google sheets via the PHP API on a G-Suite account通过 G-Suite 帐户上的 PHP API 访问 google 表格
【发布时间】:2020-01-20 17:19:30
【问题描述】:

我是该组织的成员,我创建了一个新项目,启用了 google sheet API 并设置了一个具有所有者角色的服务帐户,我下载了包含凭据的 json 文件,包括证书等。

我进入并与为该服务帐户生成的电子邮件共享此表。

当我运行 PHP 脚本并调用 getSpreadsheetFeed() 时,表格根本不显示。

当我将同一张表放在我自己的个人 Google 驱动器上并与同一个服务帐户共享时,它会按预期显示。

此工作表位于“共享驱动器”文件夹中。

<?php
require __DIR__ . '/vendor/autoload.php';

use Google\Spreadsheet\DefaultServiceRequest;
use Google\Spreadsheet\ServiceRequestFactory;

putenv('GOOGLE_APPLICATION_CREDENTIALS=' . __DIR__ . '/client_secret.json');

$client = new Google_Client;
$client->useApplicationDefaultCredentials();

$client->setApplicationName("MSE Reader Application");
$client->setScopes(Google_Service_Sheets::SPREADSHEETS);

if ($client->isAccessTokenExpired()) {
    $client->refreshTokenWithAssertion();
}

$accessToken = $client->fetchAccessTokenWithAssertion()["access_token"];
ServiceRequestFactory::setInstance(
    new DefaultServiceRequest($accessToken)
);

$spreadsheets = (new Google\Spreadsheet\SpreadsheetService)->getSpreadsheetFeed();

print_r($spreadsheets);

?>

【问题讨论】:

  • 几件事,您应该检查是否设置了相关文件,以便可以在您的域之外共享它。其次是检查服务账号是否有权限访问Sheet所在的文件夹,如果不能查看所有文件,那么getSpreadsheetFeed()就不行了。最后,请确保您遵循the quickstart guide 中的所有步骤,尽管在我怀疑这是问题之前您的代码已经运行。
  • 这里有同样的经历。无法通过 getSpreadsheetFeed 列出此 gSUite(共享驱动器)电子表格
  • “工作表根本没有出现”——这听起来很奇怪。你是什​​么意思?您尝试过什么调试脚本?

标签: php google-sheets-api google-workspace


【解决方案1】:

我已经能够使用官方客户端解决这个问题,因为https://github.com/asimlqt/php-google-spreadsheet-client 似乎已经过时并且没有积极维护。

https://developers.google.com/sheets/api/quickstart/php

此快速入门适用于我:

$service = new Google_Service_Sheets($client);

// Prints the names and majors of students in a sample spreadsheet:
// https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
$spreadsheetId = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms';
$range = 'Class Data!A2:E';
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2017-06-16
    • 2021-01-28
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多