PHP google-api-php-client получает структуру файла пользователя

Я пытаюсь создать CMS, которая использует учетную запись Google Drive в качестве хранилища и отображает ее содержимое, файлы / папки, и пользователь сможет управлять этими файлами через мой Angular FrontEnd. Я новичок в Google-API и думал, что я попробую, но я застрял.

Я использую эту библиотеку, чтобы она работала в PHP на моем локальном xampp.

Git Google PHP API

Я пытаюсь получить ответ в тестовом файле.php файлов пользователя, например:

/*************************************************
 * 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);

Но это приводит к фатальной ошибке: Uncaught Google_Service_Exception: { "error": { "errors": [ { "domain": "useLimits", "reason": "dailyLimitExceededUnreg", "message": "Превышен дневной лимит для использования без аутентификации. Продолжение использование требует регистрации.",

Я получил примеры из репозитория git для работы. Но я не нашел полезного примера, чтобы просто запросить структуру файлов пользователя.

1 ответ

Я нашел то, что мне не хватало в моем тестовом приложении: Установка токенов доступа, как это ->

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

создать сервис с клиентом вроде ->

$service = new Google_Service_Drive($client);

И, наконец, важная часть: доступ к нему, только если мы вошли в систему

/************************************************
 * 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>";
    }
}
Другие вопросы по тегам