设置Google Drive API以使用PHP的Google文档示例需要如下语句:
<?php
require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_DriveService.php';
other code
?>
我从GitHub下载了一个.zip文件,并将其解压缩。在提取的文件夹和文件中,来自GitHub的google-api-php-client文件不包含名为 Google_Client.php 的文件。 src / Google / 目录中有一个名为 Client.php 的文件。
并且没有 contrib 文件夹。
AND ,下载GitHub google-api时,没有名为 DriveService.php 的文件-php-client files。
因此,我假设对文件和文件夹的引用应如下所示:
<?php
require_once 'google-api-php-client/src/Google/Client.php';
require_once 'google-api-php-client/src/Google/Drive.php';
other code
?>
Client.php 文件包含require_once
语句,用于autoload.php文件:
if (!class_exists('Google_Client')) {
require_once dirname(__FILE__) . '/../autoload.php';
}
参考/../
中的双点表示当搜索文件 autoload.php 以便包含时,请转到父级文件夹,并在那里搜索。
所以文件夹结构应该是:
src - Folder
autoload.php
Google - Folder
Client.php
DriveService.php
autoload.php文件代码为:
<?php
function google_api_php_client_autoload($className)
{
$classPath = explode('_', $className);
if ($classPath[0] != 'Google') {
return;
}
// Drop 'Google', and maximum class file path depth in this project is 3.
$classPath = array_slice($classPath, 1, 2);
$filePath = dirname(__FILE__) . '/' . implode('/', $classPath) . '.php';
if (file_exists($filePath)) {
require_once($filePath);
}
}
spl_autoload_register('google_api_php_client_autoload');
Drive.php 文件中没有require
或include
个语句。
下载的文件中还有服务文件夹,Google文件夹中有 Service.php 文件。
文档是否有误,我的建议是对的? PHP中Drive API的正确设置是什么?
答案 0 :(得分:1)
来自GitHub的zip文件的文件夹结构与从Subversion获取的文件和文件夹的文件夹结构不同。使用Subversion下载Google API PHP客户端库时,有一个 contrib 文件夹,还有名为 Google_Client.php 的文件和 Google_DriveService.php 。我从一个zip文件中下载并从GitHub中提取了文件。然后使用Subversion下载文件会产生截然不同的结果。 Subversion重命名我猜的文件,并创建不同的文件夹名称。因此,使用Subversion新下载文件夹和文件时,文件夹结构和文件名将与文档中的示例一致。
从一些旧文档中的 使用入门 页面:
https://code.google.com/p/google-api-php-client/wiki/GettingStarted
我找到了一些信息:
提取库后。 。 。 。 。 ,你将有一个新的google-api-php-client-x.y目录。库文件本身位于google-api-php-client / src目录
中
所以,你需要得到一个:
google-api-php-client
目录和a:
google-api-php-client/src
。目录
引用:
获得图书馆。 。 ,您将在文件系统的某个位置有一个名为google-api-php-client的目录,其中包含库文件。具体来说,您需要在脚本中包含文件src / Google_Client.php和src / contrib / Google_PlusService.php。
以上引用适用于 Google_PlusService.php ,但可以替换为您需要使用的任何API服务文件。
有多种方法可以将所需的库文件包含在代码中。
在迁移到新库版本的文档中,文件和文件夹的命名约定似乎发生了变化。
https://developers.google.com/api-client-library/php/guide/migration
在使用Drive API之前,需要进行授权。我正在查看的初始文档是针对 命令行 应用程序。我不想要一个命令行应用程序,我正在尝试构建一个Web应用程序。因此,需要首先实施服务器端授权。
https://developers.google.com/drive/web/auth/web-server
服务器端授权需要在代码中包含一个额外的php文件。
require_once "google-api-php-client/src/Google/Service/Oauth2.php";
文档在这里: