Google API错误,未经授权的客户使用服务帐户

时间:2018-07-02 06:25:37

标签: php google-sheets google-api google-drive-api service-accounts

此后,我收到以下错误消息:

致命错误:未被捕获的Google_Service_Exception:{“错误”:“ unauthorized_client”,“ error_description”:“客户端未被授权使用此方法检索访问令牌。” }

对于Google管理员设置,我们点击以下链接: https://developers.google.com/api-client-library/php/auth/service-accounts

我们正在使用restapi.php

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

/**
 * Returns an authorized API client.
 * @return Google_Client the authorized client object
 */
putenv('GOOGLE_APPLICATION_CREDENTIALS=client_secret.json');
$client = new Google_Client();
$client->setApplicationName('rwmp');
$client->setAccessType("offline");        // offline access
$client->useApplicationDefaultCredentials();
$client->setSubject('user@myconference.center');


$client->setScopes([\Google_Service_Sheets::SPREADSHEETS]);
    $service = new Google_Service_Sheets( $client );

$spreadsheetId = '1WtuEXGm8oWxet6t9UcPU-mi7lgif1sqeTcmc9DO-_zs';
        $range = 'A:G';
        $response = $service->spreadsheets_values->get($spreadsheetId,$range);
        $values = $response->getValues();

(a)我们正在使用G-Suite“基本版”;有什么限制吗? (b)我们正在从PHP(7.0)环境调用G-Suite API;是否存在任何已知问题,因为环境仍标记为'(Beta)'。 (c)是否有任何样本/教程可以为解决我们的问题提供指导。

1 个答案:

答案 0 :(得分:0)

我有解决方案,我们必须从管理员配置中选择范围并使用它。

ex:$ client-> setScopes(array('https://www.googleapis.com/auth/drive','https://www.googleapis.com/auth/spreadsheets.readonly')))