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.
Comentários
Carregando comentários…