No project description provided
Project description
Google Services Client API
Esta biblioteca é uma interface de alto nível (Facade) para interagir com as APIs do Google, focando na simplicidade e na gestão automatizada de tokens. Atualmente, oferece suporte completo ao Google Calendar.
1. Instalação e Configuração Inicial
Antes de começar, você deve ter seu arquivo de segredos de cliente (client_secrets.json) do Google Cloud.
1.1. Estrutura do Token e Credenciais
A API trabalha com dois tipos de arquivos:
- Client Secrets: O arquivo
google_webapp_credentials.json(ou similar) obtido diretamente do Google Cloud. - User Token: O arquivo gerado pela biblioteca após o primeiro login (contém o
refresh_token).
Python
# Configuração (Exemplo)
CREDENTIALS_PATH = 'keys/google_webapp_credentials.json'
TOKEN_PATH = 'tokens/user_token.json' # Onde o token do usuário será salvo
REDIRECT_URI = 'https://localhost:8080/callback'
2. Fluxo de Autenticação e Carregamento de Conta
O fluxo é orquestrado pela GoogleAccountFactory, que gerencia a criação de links OAuth e a troca de código por token.
2.1. Inicialização da Factory
A Factory é o ponto de partida.
Python
from google_services_client_api import GoogleAccountFactory, TokenManager
factory = GoogleAccountFactory(
client_secrets=CREDENTIALS_PATH,
enable_logs=True
)
2.2. Verificação e OAuth Flow (Login)
A API do Google exige que o usuário se autentique uma vez para obter o refresh_token.
# 1. Tenta carregar um token existente do disco
user_token = TokenManager.load_token(TOKEN_PATH)
# Se o token não existir, for inválido ou tiver expirado (o decorator tratará o refresh),
# inicie o fluxo de autorização.
if user_token is None or not user_token.valid:
# Gera a URL de autenticação
auth_url, state = factory.generate_authorization_url(REDIRECT_URI)
# APLICAÇÃO WEB: Redireciona o usuário para auth_url e salva o 'state' na sessão.
# TESTE/CLI: Imprime o link e espera o input do redirect.
print(f"Acesse o link: {auth_url}")
redirect_response = input('Cole o URL de redirecionamento aqui: ')
# Troca o código de autorização pelo objeto Credentials
user_token = factory.fetch_token_from_redirect(
redirect_response,
expected_state=state
)
# 2. Salva o novo token no disco para persistência
TokenManager.save_token(user_token, TOKEN_PATH)
# 3. Carrega a conta com o objeto Credentials (token)
user_account = factory.load_account('User_Identifier', user_token)
3. Uso do Serviço Google Calendar
Após carregar a conta (user_account), todos os serviços são acessados por composição (user_account.calendar, user_account.drive, etc.).
3.1. Listar Eventos (Composição Limpa)
O acesso é feito diretamente pelo atributo calendar. O refresh automático do token é garantido pelo decorator da biblioteca, sem necessidade de intervenção do usuário.
Python
import datetime as dt
# O decorator @ensure_valid_token irá validar/refrescar o token automaticamente aqui.
prox_eventos = user_account.calendar.list_events(
event_count=5, # Opcional: Número máximo de eventos
start_date_time=dt.datetime.now() # Opcional: Início do range
)
# Exemplo de listagem com parâmetros
for event in prox_eventos:
print(f"Event: {event.get('summary')} at {event.get('start').get('dateTime')}")
3.2. Criar Eventos
O método create_event aceita argumentos nomeados para configurações avançadas (localização, participantes, etc.).
Python
import datetime as dt
user_account.calendar.create_event(
summary="Reunião de Lançamento",
start_date_time=dt.datetime(2025, 10, 17, 20, 0),
end_date_time=dt.datetime(2025, 10, 17, 22, 0),
# Parâmetros Opcionais (kwargs)
location="Rua dos Deploys, 42",
description="Discussão de arquitetura final.",
attendees_emails=["equipe@exemplo.com", "cliente@exemplo.com"],
color_id="4" # ID da cor do calendário
)
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_services_client_api-2.0.1.tar.gz.
File metadata
- Download URL: google_services_client_api-2.0.1.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40894fea798990a74d42a75883b933f675f063b4d6cdffc353811ecd8e176ab7
|
|
| MD5 |
984bdac4b5c91307533bfd9f1e8544c7
|
|
| BLAKE2b-256 |
eef3a46d8d64f6a991825bb614a4d3ed64838b0db14e9338844c2ebb2b2533a9
|
File details
Details for the file google_services_client_api-2.0.1-py3-none-any.whl.
File metadata
- Download URL: google_services_client_api-2.0.1-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2f2a2631b6ffaf9b63bfa602b2d25effbe8bf0f6bafcaa64e11cbc16be5bb63
|
|
| MD5 |
61b5d54b5c5570e4fcf11e2da9a86797
|
|
| BLAKE2b-256 |
f09aee80e14d4d2e76f44b925edb52736135b0ad16e6d1227b42ba82df3a573d
|