2016-06-23 3 views
0

Google의 PHP API (https://developers.google.com/drive/v2/web/quickstart/php)를 사용하여 Google 드라이브에 파일을 나열하려고합니다.Google 드라이브 API (PHP)로 파일을 나열하는 중에 오류가 발생했습니다.

범위가 지정된 액세스 토큰을 얻을 수 있었지만 Google에서 제공하는 샘플 코드 (https://developers.google.com/drive/v2/reference/files/list#response)가 오류를 반환합니다.

$client = new Google_Client(); 
    $client->setAuthConfigFile('/usr/share/nginx/google.json'); 
    $client->setAccessToken($a4e->user->google_token); // access token scoped for DRIVE_READONLY 
    $drive_service = new Google_Service_Drive($client); 

    $files=retrieveAllFiles($drive_service); 
    var_dump($files); 

    function retrieveAllFiles($service) { 
     $result = array(); 
     $pageToken = NULL; 

     do { 
     try { 
      $parameters = array(); 
      if ($pageToken) { 
      $parameters['pageToken'] = $pageToken; 
      } 
      $files = $service->files->listFiles($parameters); 

      $result = array_merge($result, $files->getItems()); 
      $pageToken = $files->getNextPageToken(); 
     } catch (Exception $e) { 
      print "An error occurred: " . $e->getMessage(); 
      $pageToken = NULL; 
     } 
     } while ($pageToken); 
     return $result; 
    } 

이 다음과 같은 오류가 반환 : 여기

내 코드입니다

Fatal error: Call to undefined method Google_Service_Drive_FileList::getItems() in /usr/share/nginx/html/tools/google/index.php on line 30

사람이 내가 잘못 알고 있나요?

미리 감사드립니다.

답변

1

Drive API V3를 사용 중이며 V3에서 V2 버전의 메소드를 호출하려고합니다. 문서를 자세히 보면 드라이브 API V2는 다음 형식으로 응답을 반환합니다. { "kind": "drive#fileList", "etag": etag, "selfLink": string, "nextPageToken": string, "nextLink": string, "items": [ files Resource ] } V2에서 $files->getItems()을 수행 할 수 있습니다. 그러나 드라이브 API V3는 다음 형식의 목록에 대한 응답을 반환합니다. { "kind": "drive#fileList", "nextPageToken": string, "files": [ files Resource ] } 따라서 $files->getFiles()을 수행해야 할 수 있습니다. 시도 해봐 !! 이것이 효과가 있기를 바랍니다. 참조 용 Drive API V3 Listing Response Drive API V2 Listing Response . 문제가 해결되면 알려주세요.

+0

고맙습니다! 이것은 트릭을했다. 나는 잘못된 API 버전의 코드를 사용하려고한다는 것을 몰랐다. 다음 번에는 더 조심 스러울 것이다. 이 문제를 해결해 주셔서 감사합니다. – praine

관련 문제