Um framework para simplificar a autenticação com APIs do Google via console.
Project description
Google Auth Framework
Este é um framework simples em Python para gerenciar a autenticação com APIs do Google usando o fluxo OAuth 2.0. Ele foi projetado para ser reutilizável e especialmente útil em ambientes de servidor ou contêineres Docker, onde a autenticação precisa ser feita através do console.
Funcionalidades
- Gerenciamento de Token: Cuida do carregamento, validação e atualização automática de tokens de acesso.
- Fluxo de Autenticação para Servidor: Implementa um fluxo de autorização que exibe uma URL no console, permitindo que o usuário autorize o acesso em um navegador local e cole a resposta de volta no terminal.
- Armazenamento Seguro: Salva as credenciais de token em um arquivo para evitar a necessidade de login a cada execução.
- Fácil Integração: Fornece uma classe
GoogleAuthManagersimples para construir e interagir com os serviços das APIs do Google (YouTube, Calendar, Drive, etc.).
Pré-requisitos
- Python 3.6+
- Um projeto no Google Cloud Console.
- Credenciais de OAuth 2.0 (ID do cliente para aplicativos de desktop) baixadas como um arquivo
client_secret.json.
Como Configurar
-
Instale as dependências:
pip install google-api-python-client google-auth-oauthlib
-
Obtenha suas credenciais:
- Acesse o Google Cloud Console e crie ou selecione seu projeto.
- Vá para "APIs e Serviços" > "Credenciais".
- Crie uma credencial do tipo "ID do cliente OAuth".
- Selecione "Aplicativo para computador".
- Após a criação, baixe o arquivo JSON e renomeie-o para
client_secret.json. Coloque este arquivo na raiz do seu projeto.
-
Configure a URI de Redirecionamento:
- Dentro das configurações da sua credencial no Google Cloud Console, adicione uma "URI de redirecionamento autorizada".
- Para uso local e no fluxo deste framework,
http://localhost:8080/ouhttp://localhost:2000/são boas opções. Certifique-se de que a URI no seu código seja a mesma que está autorizada no console.
Como Usar
Para utilizar o framework, importe a classe GoogleAuthManager e crie uma instância dela, passando as configurações necessárias.
# Exemplo em um arquivo meu_app.py
from google_auth_framework.auth import GoogleAuthManager
# 1. Crie uma instância do gerenciador de autenticação
auth_manager = GoogleAuthManager(
credentials_file="client_secret.json",
token_dir="credentials",
token_filename="meu_token_especifico.json",
redirect_uri='http://localhost:8080/', # Deve ser a mesma do Google Console
scopes=[
"https://www.googleapis.com/auth/youtube.readonly",
"https://www.googleapis.com/auth/calendar.readonly"
]
)
# 2. Construa os serviços que você precisa
# A autenticação será acionada automaticamente na primeira vez
youtube_service = auth_manager.build_service('youtube', 'v3')
calendar_service = auth_manager.build_service('calendar', 'v3')
# 3. Use os serviços para interagir com as APIs
if youtube_service:
try:
print("Buscando vídeos sobre 'Python' no YouTube...")
response = youtube_service.search().list(
q="Python",
part="snippet",
maxResults=5
).execute()
for item in response.get("items", []):
print(f"- {item['snippet']['title']}")
except Exception as e:
print(f"Ocorreu um erro ao acessar a API do YouTube: {e}")
if calendar_service:
print("\nServiço do Google Calendar pronto para uso.")
Fluxo de Autenticação (Primeira Execução)
Na primeira vez que o código for executado, ou se o token expirar e não puder ser atualizado, você verá as seguintes instruções no console:
Iniciando fluxo de autenticação no console...
--- AÇÃO NECESSÁRIA PARA AUTENTICAÇÃO ---
Para autorizar o acesso, siga estes passos:
1. Abra a seguinte URL no seu navegador:
https://accounts.google.com/o/oauth2/v2/auth?....
2. Faça login na sua Conta Google e autorize o acesso.
3. Você será redirecionado para uma página (provavelmente exibindo um erro), o que é esperado.
4. Copie a URL completa da barra de endereço do seu navegador.
5. Cole a URL de redirecionamento completa aqui e pressione Enter:
Após colar a URL e pressionar Enter, o token será salvo no diretório credentials/, e as próximas execuções usarão esse token sem precisar de intervenção manual.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file google_auth_framework_dev_fecaf-0.1.0.tar.gz.
File metadata
- Download URL: google_auth_framework_dev_fecaf-0.1.0.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f53d4aa5bc64ad0655ed774c8e548f00caa38c79f61c101dfd7ecacc03372cfa
|
|
| MD5 |
29b786c3372330dc0ee8b05cfd0451be
|
|
| BLAKE2b-256 |
ca0c4b6fe71dfd5bcb8594a9e692214ce6dfd953029ca57916facc5975d9729e
|
File details
Details for the file google_auth_framework_dev_fecaf-0.1.0-py3-none-any.whl.
File metadata
- Download URL: google_auth_framework_dev_fecaf-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b330eed22bacf90915d6703a991dcaf57643ca334ef917d9605693069aa01a1
|
|
| MD5 |
235b91c0b922e432f3c7c0cf4d3f168d
|
|
| BLAKE2b-256 |
51cf089639552893c63502f3a9c6b2ab334f0f28df5b3c7c72179a7bc5d9af00
|