Listador de Arquivos e Pastas do Google Drive em PHP: Guia Completo

Respondido usando GPT 40 por GPT40

Pergunta:

Crie um listador de arquivos e pastas do Google Drive em php

Responder:

Para criar um listador de arquivos e pastas do Google Drive em PHP, você precisará usar a API do Google Drive. Aqui está um guia passo a passo para configurar e criar um listador de arquivos e pastas:

Passo 1: Configurar o Projeto no Google Cloud Console

  1. Crie um Projeto no Google Cloud Console:

  2. Ative a API do Google Drive:

    • No painel do projeto, vá para "APIs e Serviços" > "Biblioteca".
    • Pesquise por "Google Drive API" e ative-a.
  3. Crie Credenciais:

    • Vá para "APIs e Serviços" > "Credenciais".
    • Clique em "Criar credenciais" e selecione "ID do cliente OAuth".
    • Configure a tela de consentimento OAuth.
    • Escolha "Aplicativo da Web" como tipo de aplicativo.
    • Adicione URIs de redirecionamento autorizados (por exemplo, http://localhost se estiver testando localmente).
    • Salve e baixe o arquivo JSON com as credenciais.

Passo 2: Configurar o Projeto PHP

  1. Instale a Biblioteca Cliente do Google API para PHP:

    • Use o Composer para instalar a biblioteca:
      composer require google/apiclient:^2.0
      
  2. Crie o Script PHP para Listar Arquivos e Pastas:

<?php
require 'vendor/autoload.php';

session_start();

$client = new Google_Client();
$client->setAuthConfig('path/to/credentials.json'); // Substitua pelo caminho para o arquivo JSON de credenciais
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);
$client->setRedirectUri('http://localhost'); // Substitua pelo URI de redirecionamento autorizado

if (isset($_GET['code'])) {
    $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
    $_SESSION['access_token'] = $token;
    header('Location: ' . filter_var($client->getRedirectUri(), FILTER_SANITIZE_URL));
    exit();
}

if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
    $client->setAccessToken($_SESSION['access_token']);
    $driveService = new Google_Service_Drive($client);

    // Listar arquivos e pastas
    $results = $driveService->files->listFiles(array(
        'pageSize' => 10,
        'fields' => 'nextPageToken, files(id, name, mimeType)'
    ));

    if (count($results->getFiles()) == 0) {
        print "No files found.\n";
    } else {
        print "Files:\n";
        foreach ($results->getFiles() as $file) {
            printf("%s (%s) [%s]\n", $file->getName(), $file->getId(), $file->getMimeType());
        }
    }
} else {
    $authUrl = $client->createAuthUrl();
    printf("Open the following link in your browser:\n<a href='%s'>%s</a>\n", $authUrl, $authUrl);
}
?>

Passo 3: Executar o Script

  1. Inicie um Servidor PHP:

    • Se estiver testando localmente, você pode iniciar um servidor PHP embutido:
      php -S localhost:8000
      
  2. Acesse o Script no Navegador:

    • Abra o navegador e acesse http://localhost:8000/nome_do_seu_script.php.
    • Siga o link de autenticação fornecido para autorizar o acesso ao Google Drive.
    • Após a autorização, você será redirecionado de volta ao seu script, que listará os arquivos e pastas do Google Drive.

Observações

  • Segurança: Certifique-se de proteger suas credenciais e tokens de acesso. Em um ambiente de produção, você deve armazenar tokens de forma segura e usar HTTPS.
  • Escopos: O escopo Google_Service_Drive::DRIVE_METADATA_READONLY permite apenas leitura de metadados. Se precisar de permissões adicionais, ajuste os escopos conforme necessário.

Este é um exemplo básico para listar arquivos e pastas. Dependendo das suas necessidades, você pode expandir o script para incluir funcionalidades adicionais, como paginação, filtragem, ou manipulação de arquivos.