Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Erro na Autenticação do Google Drive API - Laravel

Olá! Estou desenvolvendo um projeto com foco no filesystems do Laravel, fiz a instalação da API do google para que todos os arquivos sejam salvos no Google Drive, peguei todas as credênciais no Google Console Cloud e adicionei no meu arquivo .env.

No projeto, adicionei o drive do google da seguinte maneira:

        'google' => [
            'driver' => 'google',
            'clientId' => env('GOOGLE_DRIVE_CLIENT_ID'),
            'clientSecret' => env('GOOGLE_DRIVE_CLIENT_SECRET'),
            'refreshToken' => env('GOOGLE_DRIVE_REFRESH_TOKEN'),
            'folderId' => env('GOOGLE_DRIVE_FOLDER_ID'),
        ],

Meu controller para o upload:

    public function uploadFile(Request $request, Ufv $ufv)
    {
        $request->validate([
            'file' => 'required|file|mimes:jpg,png,pdf,docx|max:2048'
        ]);

        $file = $request->file('file');
        $fileName = $file->getClientOriginalName();
        $folderId = env('GOOGLE_DRIVE_FOLDER_ID');
        $googleDrivePath = $folderId . '/' . $fileName;

        try {
            Gdrive::put($googleDrivePath, $file);

            File::create([
                'name' => $fileName,
                'ufv_id' => $ufv->id,
                'relatorio_mensal' => $request->input('relatorio_mensal'),
                'documento' => $request->input('documento'),
                'fileName' => $fileName,
                'path' => $googleDrivePath,
                'type' => $file->getMimeType()
            ]);

            return back()->with('success', 'Arquivo enviado com sucesso!');
        } catch (\Exception $e) {
            return back()->with('error', 'Erro ao enviar o arquivo: ' . $e->getMessage());
        }
    }

Já na parte de acessar o token, com dd() eu recebo o error 500, quando jogo na exception retorna o erro de acesso negado/Autenticação:

Erro ao enviar o arquivo: { "error": { "code": 401, "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "errors": [ { "message": "Login Required.", "domain": "global", "reason": "required", "location": "Authorization", "locationType": "header" } ], "status": "UNAUTHENTICATED", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "CREDENTIALS_MISSING", "domain": "googleapis.com", "metadata": { "method": "google.apps.drive.v3.DriveFiles.Create", "service": "drive.googleapis.com" } } ] } }

Já as credênciais do Google (FolderId, ClientId, ClientSecret e RefreshToken) da seguinte maneira:

ClientId e Secret eu criei um client web: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Refresh Token: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Não encontro uma solução para essa parte de autenticação, deixei passar alguma coisa?

Para quem leu até aqui, obrigado kkkk

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Consegui encontrar o erro, URL inválida em redirecionamento autorizados no Google Cloud. Resolvido :)