/google-python-license-api

Utilizando o google sheets para criar um sistema de validação de licenciamento utilizando python e apis do google

Primary LanguagePythonMIT LicenseMIT

Google Python Licencing 🔒

Neste pequeno exemplo criamos basicamente um SaS utilizando apis do google, gerenciando licenciamento utilizando o google sheet

Funcionalidades 🧩

  • Validação de licenciamento via API
  • Geração de licenças automaticas
  • Gerenciemnto de licenças

Dependências 📂

É necessário ter uma conta no ambiente google cloud e acesso as devidas apis utilizadas, e ter instalado no seu ambiente as seguinte libs

  pip install gspread
  pip install oauth2client
  pip install pyinstaller

Configurando o google cloud ☁️

Crie uma conta no ambiente cloud da google, e ative as respectivas apis que usamos em nosso codigo python
Busque pela api do google drive: image
Ative-a image
Agora buscaremos pela api do google sheets e a ativaremos da mesma forma que fizemos anteriormente
image
Com estas etapas inicias, sua conta no ambiente google cloud tem ativada as apis necessárias para o nosso codigo se conectar ao arquivo do google sheets via google drive, e ler e escrever o arquivo atraves do google sheets
image
Agora é necessário gerar um arquivo .json contendo as credenciais que a api do google drive e google sheets, define para poder realizar o post
image Crie suas credenciais utilizando o método contas de serviço
image
Defina um nome para sua conta de serviço image
Agora precisamos definir as permissões que a conta de serviço criada terão sobre o post e get image
Definimos a permissão da conta de servico como editor, e continuamos image
Concluimos a criação da conta de serviço image
Gerencie sua conta de serviço e navegue ate a aba "Chaves", clique em adicionar chave, em seguida criar nova chave image
Defina o tipo de chave como json, e clique em criar image
Após criar a chave, a mesma sera baixada para seu computador, salve este arquivo como backup image
Abra o arquivo json criado com suas chaves, e codifique o conteudo dele em base64 seguindo o seguinte exemplo, utlizo o Base64Encode image
Copie o conteudo codificado em base64 e cole dentro do g_sheet.py
image

Configurando nossa planilha 📃

Com o ambiente cloud devidamente configurado, e chave criada, iremos agora criar a planilha no google sheets. image
A planilha deve conter 7 colunas e uma quantidade pequena de linhas(utilizando muitas linhas na planilha e as apis gratuitas, ficamos limitados a um numero de consultas por minuto, tendo em vista que nosso codigo varre todas as linhas da planilha para validar o licenciamento, devemos evitar uma planilha muito longa), sendo elas:
cliente, software, licenca, tempo, data_cadastro, ativada, data_ativacao
image
É necessário compartilhar a planilha com a conta de serviço que ficara responsavel pela comuniacao da nossa planilha com nossa aplicação final
image
Acesse seu painel de gerenciamento de credenciais dentro do google cloud, copie o email criado para a conta de serviço,
image
Com o endereço de email da conta de serviço em maos, volte a sua planilha e cole o endereco de email conforme a foto, e defina o email como editor da planilha
image
Após criar a planilha e as devidas colunas será necessário criar alguns scripts na planilha image
O primeiro script, irá diminuir os dias de licença que o usuario tem, e ativará a licença no primeiro uso dela, baseado no valor da coluna "ativada"
image
O segundo script realiza o auto preenchimento do campo data_cadastro, ao inserir o nome de um novo cliente, e ira gerar um numero de licença aleatorio, baseado em qual software foi selecionado da lista de validação de dados da coluna 2 (b)
image
Aqui está um exemplo de como a configurar a validação de dados para a coluna 2 (b)
image
Após criarmos os scripts é necessário definirmos os seus acionadores de tempo
image
Criaremos o um acionador que chama a o parametro de execução "diminuirValor", vinculado ao segundo script, um acionaor baseado no tempo, em horas, sendo executado de hora em hora na nossa planilha (resumidamente, o que fazemos é comparar a ultima data de alteracao do documento feita pela conta de servico, e se essa data for > que a data atual por 24 horas, o script remove 1 dia do tempo disponivel da licença) image
Planilha configurada, significa que ao preencher os campos marcados em vermelho na planilha, e ativar a licença via software, os campos marcados em amarelo serão preenchidos automaticamente
image

Compilando 🗜️

Agora iremos compilar nosso executavel Abra seu arquivo interface.py, e envie o seguinte comando no seu terminal

  pyinstaller --noconsole --onefile interface.py

image Aguarde o compilador empacotar as depedencias e sua interface em um unico arquivo executavel(note que você pode compilar para outras plataformas) image Concluida a compilação, seu arquivo .exe ira fica dentro da pasta dist image Se tudo correu corretamente com o seu projeto, ao executar o programa compilado, ele será exibido desta forma image

Conclusão 🗝️

Ao inserir o codigo de licença gerado automaticamente pela planilha no software, o mesmo ira buscar a licença inserida na interface, em todas as linhas da coluna 2(b) planilha e se encontrar a licença , ela estiver com tempo > 0, e ativa < 1 ele ira ativar a licença e comecara a descontar o tempo a cada 24h a partir da ativacao
image
Agora deixe sua criativade fluir e aprimore este codigo, crie um formulario para cadastro de clientes nesta planilha que criamos, utilize o sistema de validacao de licenciamento para vender seu software etc..
Compreendendo o codigo voce pode adicionar outras colunas na planilha para liberar acessos a determinadas funcoes do software atraves de modificacoes no codigo