2017-05-12 3 views
0

J'essaie de construire un CMS qui utilise un compte Google Drive comme stockage et affiche son contenu, les fichiers/dossiers et l'utilisateur doit être capable de gérer ces fichiers via mon FrontEnd angulaire. Je suis nouveau au google-api et j'ai pensé que je l'essayer mais je suis coincé. J'utilise cette bibliothèque pour la faire fonctionner en PHP sur mon xampp local.PHP google-api-php-client get user Structure du fichier

Git Google PHP API

J'essaie d'obtenir une réponse dans un fichier de test .php des fichiers utilisateurs comme ceci:

/************************************************* 
* Ensure you've downloaded your oauth credentials 
************************************************/ 
if (!$oauth_credentials = getOAuthCredentialsFile()) 
{ 
    echo missingOAuth2CredentialsWarning(); 
    return; 
} 

/************************************************ 
* The redirect URI is to the current page, e.g: 
* http://localhost:8080/simple-file-upload.php 
************************************************/ 
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 

$client = new Google_Client(); 
$client->setAuthConfig($oauth_credentials); 
$client->setRedirectUri($redirect_uri); 
$client->addScope(Google_Service_Drive::DRIVE); 
$service = new Google_Service_Drive($client); 


$pageToken = null; 
do { 
    $response = $service->files->listFiles(); 

    foreach ($response->files as $file) { 
     printf("Found file: %s (%s)\n", $file->name, $file->id); 
    } 
} while ($pageToken != null); 

Mais cette throws Erreur fatale: Uncaught Google_Service_Exception: { "erreur": { "erreurs": [{ "domain": "usageLimits", "raison": "dailyLimitExceededUnreg", "message": "Limite quotidienne pour Unauthenticated utilisation dépassé l'utilisation continue nécessite votre inscription.",

Je suis les exemples de le dépôt git à travailler. Mais je n'ai pas trouvé d'exemple utile pour interroger la structure du fichier des utilisateurs.

+0

J'ai cette erreur avant et i t se produit lorsque la demande que j'envoie n'est pas authentifiée. – Morfinismo

+0

Il existe plusieurs authentifications (OAuth, comptes de service) dans cette bibliothèque, ce qui est nécessaire pour une telle demande ou est-ce important? Lorsque j'essaie l'exemple de téléchargement, on me demande de me connecter et de télécharger un fichier sur mon disque avec succès. Si je copie la partie d'authentification dans ce fichier de requête, cela ne fonctionne pas. – AHahn

Répondre

1

J'ai trouvé ce que je manque dans ma demande de test: jetons d'accès Réglage comme celui-ci ->

if (isset($_GET['code'])) 
{ 
    $token = $client->fetchAccessTokenWithAuthCode($_GET['code']); 
    $client->setAccessToken($token); //really needed? we also set it when the session is not empty 

    // store in the session also 
    $_SESSION['upload_token'] = $token; 

    // redirect back to the example 
    header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); 
} 

// set the access token as part of the client 
if (!empty($_SESSION['upload_token'])) 
{ 
    $client->setAccessToken($_SESSION['upload_token']); 
    if ($client->isAccessTokenExpired()) 
    { 
     unset($_SESSION['upload_token']); 
    } 
} 
else 
{ 
    $authUrl = $client->createAuthUrl(); 
} 

créer un service avec le client comme ->

$service = new Google_Service_Drive($client); 

Et enfin, le part importante: l'accès seulement, si nous connecté

/************************************************ 
* If we're signed in then lets try to do something 
************************************************/ 
if ($client->getAccessToken()) 
{ 
    $response = $service->files->listFiles(); 

    foreach ($response->files as $file) 
    { 
     echo "<div>" . $file->name . " - " . $file->id . "</div><br>"; 
    } 
}