我正在实施google drive API。
我已经提到了这个google文档https://developers.google.com/api-client-library/php/auth/web-app#example。
这是我的index.php
<?php
require_once __DIR__ . '/vendor/autoload.php';
session_start();
$client = new Google_Client();
$client->setAuthConfigFile('client_secret.json');
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$client->setAccessToken($_SESSION['access_token']);
$drive_service = new Google_Service_Drive($client);
$files_list = $drive_service->files->listFiles(array())->getItems();
echo json_encode($files_list);
} else {
$redirect_uri = 'http://127.0.0.1/googleApiQuickstart/oauth2callback.php';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
我的oauth2callback.php
<?php
require_once __DIR__ . '/vendor/autoload.php';
session_start();
$client = new Google_Client();
$client->setAuthConfigFile('client_secret.json');
$client->setRedirectUri('http://127.0.0.1/googleApiQuickstart/oauth2callback.php');
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);
if (!isset($_GET['code'])) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
$client->authenticate($_GET['code']);
$_SESSION['access_token'] = $client->getAccessToken();
$redirect_uri = 'http://127.0.0.1/googleApiQuickstart';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
但是得到错误。
调用未定义的方法Google_Service_Drive_FileList :: getItems()
我哪里错了?
答案 0 :(得分:14)
$files_list = $drive_service->files->listFiles(array())->getItems();
更改为 - &gt;
$files_list = $drive_service->files->listFiles(array())->getFiles();
似乎getItems();
不再有效,您必须使用getFiles();
代替getItems();
答案 1 :(得分:0)
经过一点点搜索,找到了一个解决方案。
只需删除"webRoot": "${workspaceRoot}/../../..",
并将此行添加到ge文件数组的文件数组中。
getItems()