@danhachuel/thunderbolt 0.5.88 → 0.5.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -40,9 +40,9 @@ def _authorization_error_message(email: str, exc: Exception) -> str:
40
40
  if "redirect_uri_mismatch" in detail.lower():
41
41
  return (
42
42
  f"A autorização da conta {email} foi rejeitada pelo Google (redirect_uri_mismatch). "
43
- f"Use um cliente OAuth do tipo Desktop app ou adicione exactamente {loopback_redirect_uri()} "
44
- "em Google Cloud > APIs e serviços > Credenciais > URIs de redireccionamento autorizados. "
45
- "Não use uma URI sem a porta, com localhost diferente ou sem a barra final."
43
+ "Este fluxo usa um callback local loopback; crie ou seleccione uma credencial OAuth do tipo "
44
+ "Aplicativo para computador (Desktop app), não Aplicativo da Web. "
45
+ f"A porta predefinida é {loopback_redirect_uri()} e pode mudar automaticamente se estiver ocupada."
46
46
  )
47
47
  return f"A autorização da conta {email} falhou: {detail}"
48
48
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danhachuel/thunderbolt",
3
- "version": "0.5.88",
3
+ "version": "0.5.89",
4
4
  "description": "Thunderbolt — interface local para operação de canais faceless e motor MoneyPrinterTurbo",
5
5
  "license": "MIT",
6
6
  "main": "scripts/cli.mjs",
@@ -4,7 +4,7 @@ Este tutorial explica como criar um projecto no Google Cloud, activar a YouTube
4
4
 
5
5
  ## Pré-requisitos
6
6
 
7
- Antes de começar, certifique-se de que tem uma conta Google, acesso ao [Google Cloud Console](https://console.cloud.google.com/) e o Thunderbolt instalado e em execução localmente. A aplicação em execução é necessária para confirmar a URI de redireccionamento OAuth utilizada pelo projecto.
7
+ Antes de começar, certifique-se de que tem uma conta Google, acesso ao [Google Cloud Console](https://console.cloud.google.com/) e o Thunderbolt instalado e em execução localmente. A aplicação em execução é necessária para concluir o callback OAuth local.
8
8
 
9
9
  ## Passo 1 — Aceder ao Google Cloud Console
10
10
 
@@ -68,30 +68,11 @@ Na página da tela de consentimento OAuth, abra o separador **Público-alvo** e,
68
68
 
69
69
  ## Passo 6 — Criar as credenciais OAuth
70
70
 
71
- No menu lateral, abra **APIs e Serviços → Credenciais** e clique em **+ Criar credenciais → ID do cliente OAuth**. Em **Tipo de aplicativo**, seleccione **Aplicativo da Web** e atribua um nome, por exemplo, `Thunderbolt Web Client`.
71
+ No menu lateral, abra **APIs e Serviços → Credenciais** e clique em **+ Criar credenciais → ID do cliente OAuth**. Em **Tipo de aplicativo**, seleccione **Aplicativo para computador** (também apresentado como **Desktop app**) e atribua um nome, por exemplo, `Thunderbolt Desktop Client`.
72
72
 
73
- ### Origens JavaScript autorizadas
73
+ > **Importante:** o Thunderbolt usa `InstalledAppFlow` com um callback local loopback. Não seleccione **Aplicativo da Web**. Essa credencial exige URIs fixas e causa `Erro 400: redirect_uri_mismatch` neste fluxo.
74
74
 
75
- Clique em **Adicionar URI** e introduza a origem onde o frontend é executado, por exemplo:
76
-
77
- ```text
78
- http://localhost:3000
79
- ```
80
-
81
- Se existir um ambiente de produção, adicione também a origem HTTPS correspondente, por exemplo `https://seudominio.com`.
82
-
83
- ### URIs de redireccionamento autorizadas
84
-
85
- Esta é a parte mais crítica. Clique em **Adicionar URI** e introduza a URI exacta utilizada pelo Thunderbolt para o callback OAuth. Exemplos de desenvolvimento local:
86
-
87
- ```text
88
- http://localhost:3000/api/auth/google/callback
89
- http://localhost:5173/oauth2callback
90
- ```
91
-
92
- > **A URI tem de ser exactamente igual à configurada no código do Thunderbolt.** Uma barra final diferente, o uso de `http` em vez de `https` ou uma porta diferente causa o erro `redirect_uri_mismatch`.
93
-
94
- Se não souber qual é a URI utilizada, consulte a configuração ou o ficheiro de ambiente do Thunderbolt e confirme também os logs da aplicação.
75
+ Uma credencial **Desktop app** não precisa de **Origens JavaScript autorizadas** nem de adicionar manualmente uma URI de redireccionamento. O Thunderbolt inicia o callback local em `http://127.0.0.1:8765/`; se essa porta estiver ocupada, escolhe automaticamente outra porta loopback livre.
95
76
 
96
77
  Clique em **Criar**. Na janela apresentada, copie o **ID do cliente (Client ID)** e a **Chave secreta do cliente (Client Secret)** e guarde-os num local seguro.
97
78
 
@@ -99,34 +80,26 @@ Clique em **Criar**. Na janela apresentada, copie o **ID do cliente (Client ID)*
99
80
 
100
81
  ## Passo 7 — Configurar o Thunderbolt
101
82
 
102
- O projecto utiliza variáveis de ambiente para as credenciais OAuth. Localize o ficheiro de ambiente do Thunderbolt, normalmente `.env`, `.env.local` ou o ficheiro de configuração equivalente, e adicione:
83
+ Na aba **Configurações → Configuração API → API Keys Upload → Contas Google**, crie ou edite a conta Google e cole o **Client ID** e o **Client Secret** da credencial **Desktop app**. Guarde a conta e clique em **Autorizar/Reautorizar**.
103
84
 
104
- ```env
105
- GOOGLE_CLIENT_ID=seu_client_id_aqui
106
- GOOGLE_CLIENT_SECRET=sua_client_secret_aqui
107
- GOOGLE_REDIRECT_URI=http://localhost:3000/api/auth/google/callback
108
- ```
109
-
110
- Substitua `seu_client_id_aqui` e `sua_client_secret_aqui` pelos valores copiados no passo anterior. Confirme que `GOOGLE_REDIRECT_URI` é exactamente igual à URI registada no Google Cloud Console.
85
+ Não é necessário configurar `GOOGLE_REDIRECT_URI` nem adicionar uma URI de callback de `localhost` no Google Cloud Console: o callback loopback é criado pelo `InstalledAppFlow` durante a autorização.
111
86
 
112
87
  ## Passo 8 — Testar a autenticação
113
88
 
114
- Reinicie o servidor do Thunderbolt para carregar as novas variáveis de ambiente. Abra a interface e tente iniciar sessão com o Google.
89
+ Abra a interface do Thunderbolt e tente autorizar a conta Google.
115
90
 
116
91
  O fluxo esperado é:
117
92
 
118
93
  1. O Google apresenta a tela de consentimento com o nome do app e os escopos solicitados.
119
94
  2. O utilizador autoriza o acesso.
120
- 3. O Google redirecciona para a URI de callback do Thunderbolt.
121
- 4. A autenticação é concluída com sucesso na aplicação.
95
+ 3. O Google redirecciona para o callback local do Thunderbolt.
96
+ 4. A autenticação é concluída e o token é guardado no storage local da conta.
122
97
 
123
98
  ## Solução de problemas
124
99
 
125
100
  ### Erro `redirect_uri_mismatch`
126
101
 
127
- Este erro significa que a URI enviada pelo Thunderbolt não corresponde exactamente à URI registada no Google Cloud Console.
128
-
129
- Verifique a URI utilizada nos logs ou no código do Thunderbolt. Depois, abra **Credenciais**, seleccione o ID do cliente e adicione a URI exacta em **URIs de redireccionamento autorizadas**. Aguarde um a dois minutos para a configuração se propagar, limpe o cache do navegador e tente novamente.
102
+ Este erro ocorre normalmente quando foi criada uma credencial **Aplicativo da Web** para o fluxo local. Abra **APIs e Serviços → Credenciais**, crie uma nova credencial **ID do cliente OAuth → Aplicativo para computador (Desktop app)**, substitua o Client ID e o Client Secret na conta Google do Thunderbolt e tente novamente. Não tente corrigir este fluxo adicionando uma URI de `localhost` numa credencial Web.
130
103
 
131
104
  ### Erro `invalid_request` ou `access_denied`
132
105
 
@@ -134,7 +107,7 @@ Confirme se o seu e-mail foi adicionado como utilizador de teste no passo 5. Ver
134
107
 
135
108
  ### Mensagem “Acesso bloqueado: solicitação inválida”
136
109
 
137
- Na maioria dos casos, esta mensagem está relacionada com uma URI de redireccionamento incorrecta. Reveja cuidadosamente os passos 6 e 7, verificando protocolo, domínio, porta, caminho e barras finais.
110
+ Confirme primeiro que a credencial é **Aplicativo para computador (Desktop app)** e não **Aplicativo da Web**. Depois confirme que a conta Google foi adicionada como utilizador de teste e que a YouTube Data API v3 está activa.
138
111
 
139
112
  ## Escopos importantes para o YouTube
140
113