2016-06-22 51 views
4

GoogleドライブAPIを実装しています。未定義のメソッドを呼び出すGoogle_Service_Drive_FileList :: getItems()

この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()

答えて

10
$files_list = $drive_service->files->listFiles(array())->getItems(); 

変更はに - >

$files_list = $drive_service->files->listFiles(array())->getFiles(); 

getItems();があなたの代わりに答えをgetItems();

+0

感謝のgetFiles();を使用する必要があり、それ以上動作しないようです。.. –

0

小さなビットの検索の後、1つの解決策が見つかりました。

getItems()を削除し、この行を追加してファイルIDのファイルの配列を作成します。

if (count($files_list->getFiles()) == 0) { 
    print "No files found.\n"; 
} else { 
    foreach ($files_list->getFiles() as $file) { 
     $res['name'] = $file->getName(); 
     $res['id'] = $file->getId(); 
     $files[] = $res; 
    } 
    print_r($files); 
} 
関連する問題