Rclone com Google Drive: resolvi o erro 400 invalid_scope

Conectando o Rclone ao Google Drive, esbarrei num erro 400 de scope inválido. A solução não está no Rclone — está em criar suas próprias credenciais OAuth.

O problema

Eu uso uma ferramenta chamada Rclone para conectar e sincronizar meus arquivos em serviços de nuvem (como o Google Drive) diretamente pelo terminal — aquela tela de linha de comando onde digitamos ordens para o sistema no Linux. O Rclone é como um verdadeiro canivete suíço para esse tipo de tarefa.

Na teoria, conectar o Rclone ao Google Drive é bem simples: você digita rclone config, segue um assistente passo a passo, autoriza o acesso no navegador e pronto. Na prática, porém, no momento em que o meu navegador abriu para pedir autorização, dei de cara com uma parede de tijolos do Google:

Acesso bloqueado: erro de autorização. Some requested scopes were invalid. {invalid=[https://www.googleapis.com/auth/1]} Erro 400: invalid_scope

Isso me deixou bastante confuso porque eu não tinha configurado nenhum “escopo” (que é o nível de permissão que o app pede) — apenas segui o assistente padrão. A mensagem não explica a causa real, e pesquisar por “rclone invalid_scope” na internet retorna um monte de fóruns sem solução definitiva. Este artigo é exatamente o guia que eu gostaria de ter encontrado: uma explicação simples de por que isso acontece e a correção que realmente funciona.

Por que isso acontece

A resposta está em um detalhe que o assistente de configuração esconde de você. Quando você não fornece um “Client ID” próprio (um código que funciona como a “identificação do seu aplicativo”) durante o rclone config, o Rclone utiliza uma chave de autorização OAuth global e compartilhada entre todos os usuários do Rclone no mundo.

Isso é conveniente — afinal, você não precisa criar nada no painel do Google —, mas essa praticidade tem um preço.

O Google, em atualizações recentes de segurança (especialmente para contas pessoais, que não são corporativas), passou a bloquear de forma rigorosa os pedidos de acesso amplo vindos de identificadores (Client IDs) não verificados. Como o Client ID padrão do Rclone é compartilhado por milhares de pessoas e não é auditado formalmente pelo Google, a segurança do Google simplesmente bloqueia o acesso. Daí surge o Erro 400.

Não se trata de um defeito ou bug do Rclone. É apenas o Google sendo mais restritivo com aplicativos de terceiros que tentam usar credenciais compartilhadas. A solução, portanto, é parar de usar essa credencial compartilhada e criar a sua própria.

A correção: seu próprio Client ID

A ideia é criar suas próprias credenciais de acesso no Google Cloud Console (o painel de controle do Google para desenvolvedores). Essas credenciais vêm em par: o Client ID (o nome/identificador do app) e o Client Secret (a senha secreta do app).

Quando você gera esses códigos, o Google entende que é você mesmo autorizando seu próprio aplicativo pessoal a ler o seu próprio Drive — e libera as permissões sem hesitar.

Abaixo está o passo a passo, exatamente na ordem em que executei:

1. Criar o projeto no Google Cloud

Acesse console.cloud.google.com e crie um projeto novo (com um nome simples, como “Rclone-Pessoal”). Não precisa ser nada elaborado — esse projeto serve apenas como uma “pasta” para guardar suas credenciais.

2. Ativar a API do Drive

Vá no menu em APIs & Services → Library (APIs e Serviços → Biblioteca), procure por Google Drive API e clique em Enable (Ativar). As APIs são pontes de comunicação; sem ativar a API do Drive, as credenciais que você gerar não conseguirão acessar os arquivos, mesmo que tenham permissão.

3. Configurar a tela de consentimento

Aqui está o segredo que me custou bastante tempo. Vá em OAuth consent screen (Tela de permissão OAuth), selecione a opção External (Externo), preencha o nome do aplicativo (Rclone) e seu e-mail.

Agora o ponto crucial: na aba Test users (Usuários de teste), adicione o seu próprio e-mail.

Sem fazer isso, o Google exige que seu app passe por uma auditoria formal de segurança (o que é inviável para um uso pessoal). Ao colocar seu e-mail na lista de testadores, você pula essa exigência: seu aplicativo fica em “modo de teste” e usuários cadastrados como testadores podem autorizar o acesso normalmente.

4. Gerar as credenciais

Vá em Credentials → Create Credentials → OAuth client ID (Credenciais → Criar Credenciais → ID do cliente OAuth). No tipo de aplicação, escolha Desktop app (Aplicativo para computador, pois o Rclone roda no seu terminal e não em um site web). Copie o Client ID e o Client Secret que forem exibidos.

5. Reconfigurar o Rclone

De volta ao terminal da sua máquina, rode o comando:

rclone config

Quando o assistente perguntar pelos campos client_id e client_secret, cole os valores que você acabou de gerar — em vez de deixá-los em branco (que é o comportamento que fazia o Rclone usar a credencial pública compartilhada).

O navegador vai abrir novamente. Desta vez, aparecerá um aviso de segurança (porque o aplicativo está em modo de teste e não foi auditado pelo Google). Clique em Advanced (Avançado) e depois em Go to Rclone (unsafe) (Ir para Rclone - não seguro). Confirme a autorização. O erro 400 desaparecerá imediatamente.

O porquê de cada passo

A tentação é apenas seguir as etapas mecanicamente. Mas entender a razão de cada passo evita que você fique perdido quando o Google mudar a interface visual (o que acontece com frequência):

  • Ativar a API: Ter a chave (as credenciais) não adianta se a porta (a API do Drive) estiver trancada. Se a API estiver desativada, o Google nega a chamada.
  • Test users (Usuários de teste): Como um aplicativo pessoal não passa por verificação oficial, apenas contas cadastradas como testadoras têm permissão para autorizar o acesso. Você precisa ser um usuário de teste do seu próprio app.
  • Desktop app: O Rclone é um programa executado na sua máquina local, e não em um servidor web com um endereço de redirecionamento público. O fluxo de autorização para aplicativos desktop é diferente do fluxo para sites.
  • “Go to Rclone (unsafe)”: Como apps em modo de teste não possuem o selo de verificação oficial do Google, o sistema exibe um alerta. Ao clicar nessa opção, você está confirmando: “eu sei o que estou fazendo, eu criei este app e confio nele”.

Quando o Google alterar a posição de um botão ou o nome de uma tela, saber o motivo de cada etapa permite que você encontre o equivalente na nova interface. Seguir um tutorial sem entender o contexto faz você travar na primeira mudança de layout.

O que aprendi

A lição que fica para além deste problema pontual é: usar credenciais compartilhadas é um débito técnico (uma facilidade temporária que gera problemas no futuro). O Rclone oferece a conveniência de não pedir que você crie nada — e essa conveniência quebra no momento em que o provedor (o Google, neste caso) aperta as regras de segurança. Sempre que uma ferramenta oferecer a opção “use nossa credencial padrão”, pergunte-se: e quando eles mudarem a política? Criar suas próprias credenciais exige 20 minutos de trabalho uma única vez e garante total controle para sempre.

E o segundo aprendizado, mais geral: um erro 400 acompanhado de uma mensagem genérica quase sempre indica um problema de autorização (permissão), e não um problema na estrutura da requisição. Uma mensagem sobre escopo inválido pode parecer um erro de digitação no comando, mas na verdade é um erro de confiança. O Google não está dizendo “o seu pedido foi feito no formato incorreto” — está dizendo “eu não confio em quem está fazendo este pedido”. Confundir essas duas coisas pode fazer você procurar bugs no lugar errado por horas.

Leia também

Comentários

Carregando comentários…

Deixe um comentário