Skip to main content

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 GoogleAuthManager simples 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

  1. Instale as dependências:

    pip install google-api-python-client google-auth-oauthlib
    
  2. 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.
  3. 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/ ou http://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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

google_auth_framework_dev_fecaf-0.1.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file google_auth_framework_dev_fecaf-0.1.0.tar.gz.

File metadata

File hashes

Hashes for google_auth_framework_dev_fecaf-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f53d4aa5bc64ad0655ed774c8e548f00caa38c79f61c101dfd7ecacc03372cfa
MD5 29b786c3372330dc0ee8b05cfd0451be
BLAKE2b-256 ca0c4b6fe71dfd5bcb8594a9e692214ce6dfd953029ca57916facc5975d9729e

See more details on using hashes here.

File details

Details for the file google_auth_framework_dev_fecaf-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for google_auth_framework_dev_fecaf-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8b330eed22bacf90915d6703a991dcaf57643ca334ef917d9605693069aa01a1
MD5 235b91c0b922e432f3c7c0cf4d3f168d
BLAKE2b-256 51cf089639552893c63502f3a9c6b2ab334f0f28df5b3c7c72179a7bc5d9af00

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page