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

1 resposta
solução!

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