2013-02-11 1 views
0

j'ai utilisé le api de Google Drive pour insérer un fichier texte ...api lecteur google ne sais pas où il enregistre le fichier mais quand tiré par les cheveux, il montre l'sauvé, mais pas les autres

Build Service

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

Récupérer fichiers

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

Création d'une instance nd insertion

$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>'; 

Récupération de fichiers

$ret = retrieveAllFiles($service); 

echo '<pre>'; 
print_r($ret); 
  1. Comme dans le poing appelle insérer un fichier ...

  2. dans le deuxième appel que je suis en train de la liste tous les fichiers ...

  3. lorsque je tente de la liste que je pouvais voir que le fichier inséré, mais pas les autres que je pouvais voir dans mon lecteur en vous connectant à docs.google.com. Je suis déjà avec 6 fichiers en ligne

  4. selon la documentation que j'ai créé compte de service avec les clés privées et l'e-mail de compte de service.

Alors, où ce fichier est de stocker et comment puis-je énumérer tous les autres fichiers dans la racine de Google Drive?

Répondre

1

Vous insérez des fichiers dans le compte appartenant application représentée par le compte de service.

Si vous souhaitez gérer (insérer/liste/...) les fichiers dans un autre domaine compte Drive utilisateur, vous devrez effectuer la délégation de domaine à l'échelle: https://developers.google.com/drive/delegation

+0

pas c'est moi et mon compte. je veux copier des dossiers de mon site Web pour conduire de google à l'arrière-plan sans mon interférence. En outre, est-il possible de voir tous les fichiers que j'ai insérés en utilisant drive.google.com dans un navigateur. J'ai essayé mais je ne peux pas voir les fichiers que j'ai insérés. suggestions...? –

+1

La façon dont vous authentifiez est celle utilisée pour les comptes de service. Si vous avez seulement besoin d'accéder à votre compte, le processus d'authentification standard suffira. Vous pouvez demander un accès hors connexion pour insérer des fichiers en arrière-plan –

+0

oh ... qui est ce que je cherchais depuis ... je ne l'ai pas vu aucun sujet lié à un accès hors connexion dans le lecteur documentation api ... pourriez-vous déposer une référence ici ? Pendant ce temps, je vérifie sur elle ... première fois dans api de Google Drive prend beaucoup de temps ... –

Questions connexes