2013-02-11 4 views
0

다른 ...구글 드라이브 API를 몰라하지 내가 텍스트 파일을 삽입 할 구글 드라이브 API를 사용

빌드 서비스

function buildService() { 

$DRIVE_SCOPE = 'https://www.googleapis.com/auth/drive'; 
$SERVICE_ACCOUNT_EMAIL = '[email protected]'; 

if($_SERVER['HTTP_HOST'] == 'localhost') 
$SERVICE_ACCOUNT_PKCS12_FILE_PATH = 'xxxxxxxx-privatekey.p12'; 
else 
$SERVICE_ACCOUNT_PKCS12_FILE_PATH = $_SERVER['DOCUMENT_ROOT'].'/xxxxx-privatekey.p12'; 

    $key = file_get_contents($SERVICE_ACCOUNT_PKCS12_FILE_PATH); 
    $auth = new Google_AssertionCredentials(
     $SERVICE_ACCOUNT_EMAIL, 
     array($DRIVE_SCOPE), 
     $key); 
    $client = new Google_Client(); 
    $client->setUseObjects(true); 
    $client->setAssertionCredentials($auth); 
    return new Google_DriveService($client); 
} 

는 파일

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; 
} 

인스턴스 a를 만들기 검색 차 삽입

$service = buildService(); 

$file = new Google_DriveFile(); 
$file->setTitle('My document'); 
$file->setDescription('A test document'); 
$file->setMimeType('text/plain'); 

$data = "contents"; 

$createdFile = $service->files->insert($file, array('data' => $data,'mimeType' =>'text/plain',)); 

print_r($createdFile); 

echo '<br>------<br>'; 

가져 오는 파일 주먹 마찬가지로

$ret = retrieveAllFiles($service); 

echo '<pre>'; 
print_r($ret); 
  1. 내가 파일을 삽입 전화 ... 내가 목록에 노력하고 두 번째 통화에

  2. 모든 파일 ...

  3. 내가 목록에 넣으려고하면 삽입 된 파일 만 볼 수 있지만 docs.google.com에 로그인하여 내 드라이브에서 볼 수있는 파일은 볼 수 없습니다. 나는 이미 6 파일을 온라인으로 가지고있다.

  4. 나는 개인 키와 서비스 계정 이메일로 서비스 계정을 만들었다.

어디 그 파일을 저장하고 난 구글의 루트에 다른 모든 파일의 목록을 어떻게 유도 할 것인가?

답변

1

서비스 계정이 나타내는 응용 프로그램 소유 계정에 파일을 삽입하고 있습니다. 다른 도메인 사용자의 드라이브 계정에 (삽입/목록/...) 파일을 관리하려면

, 당신은 도메인 전체 위임을 수행 할 필요가 없습니다 것입니다 : 더는 나와 내 계정 https://developers.google.com/drive/delegation

+0

입니다. 내 간섭없이 배경에서 웹 사이트의 Google 드라이브로 파일을 복사하고 싶습니다. 게다가 브라우저에 drive.google.com을 사용하여 내가 삽입 한 모든 파일을 볼 수 있습니까? 시도했지만 삽입 한 파일을 볼 수 없습니다. 제안 ...? –

+1

인증 방법은 서비스 계정에 사용되는 방법입니다. 계정에 액세스하기 만하면 표준 인증 프로세스로 충분합니다. –

+0

오 배경에 파일을 삽입하는 오프라인 액세스를 요청할 수 있습니다 ... 그게 내가 찾고 있었던 ... 드라이브 API 문서의 오프라인 액세스와 관련된 주제를 보지 못했습니다 ... 여기에 참조를 드롭 할 수 있습니까? ? 한편, 나는 그것을 확인하고 있습니다 ... 처음으로 Google 드라이브 API로 오랜 시간이 걸릴 ... –

관련 문제