我要做的就是从网站上阅读 Google 电子表格。我已经阅读并重新阅读了 Google Drive API 文档以及 Stack Overflow 上的所有 Google Drive PHP 内容,但我仍然无法到达终点区。
这是我所做的:
- 去过 Google APIs Console 并且:
- 在“服务”下启用“Drive API”和“Drive SDK”;
- 在“API 访问”下创建了 OAuth 2.0 客户端 ID。在“Web 应用程序的客户端 ID”下,控制台给了我“客户端 ID”、“电子邮件地址”、“客户端密码”、“重定向 URI”和“JavaScript 来源”;
- 下载了“Google API PHP 客户端库”;
- 打开 Google Drive 文档(电子表格)并单击“共享”以获取文档的“密钥”;
- 设置以下代码:
<?php
session_start();
require_once 'lib/gapi/Google_Client.php';
require_once 'lib/gapi/contrib/Google_DriveService.php';
define( 'GDRIVE_CLIENT_ID', '<API Console - API Access - Client ID>' );
define( 'GDRIVE_CLIENT_SECRET', '<API Console - API Access - Client secret>' );
define( 'GDRIVE_REDIRECT_URIS', '<API Console - API Access - Redirect URIs>' );
define( 'GDRIVE_SCOPE_01', 'h t t p s://www.googleapis.com/auth/drive' );
define( 'GDRIVE_SCOPE_02', 'h t t p s://www.googleapis.com/auth/drive.apps.readonly' );
define( 'GDRIVE_SCOPE_03', 'h t t p s://www.googleapis.com/auth/drive.file' );
define( 'GDRIVE_SCOPE_04', 'h t t p s://www.googleapis.com/auth/drive.metadata.readonly' );
define( 'GDRIVE_SCOPE_05', 'h t t p s://www.googleapis.com/auth/drive.readonly' );
define( 'GDRIVE_FILE_KEY', '<'key' given from 'sharing' document>' );
$client = new Google_Client();
$client->setClientId( GDRIVE_CLIENT_ID );
$client->setClientSecret( GDRIVE_CLIENT_SECRET );
$client->setRedirectUri( GDRIVE_REDIRECT_URIS );
$client->setScopes( array( GDRIVE_SCOPE_01, GDRIVE_SCOPE_02, GDRIVE_SCOPE_03, GDRIVE_SCOPE_04, GDRIVE_SCOPE_05 ) );
try {
$file = $service->files->get( GDRIVE_FILE_KEY );
echo "Title: ", $file->getTitle();
echo "Description: ", $file->getDescription();
echo "MIME type: ", $file->getMimeType();
} catch (Exception $e) {
echo "An error occurred: ", $e->getMessage();
}
?>
一切运行良好(无论如何都没有错误),直到$service->files->get( GDRIVE_FILE_KEY )
触发异常的调用:
发生错误:调用 GET 时出错
https://www.googleapis.com/drive/v2/files
:(403) 已超出未验证使用的每日限制。继续使用需要注册。
我究竟做错了什么?我把头发拉了出来(嗯,剩下的)。