1
resposta

[Dúvida] replicar o exercício usando planilha do google sheets como api

Estou tentando replicar o exercício do curso usando um google sheet como api. Entrei na documentação mas acho que não entendi direito o passo a passo. Não deu certo em nenhuma das tentativas. Aqui no curso, a gente faz o deploy no final, mas no exemplo da documentação, parece que a configuração para usar o google sheet é feita depois do deploy, pois a configuração é feita no app -> settings -> secrets , dentro da página do streamlit.

É isso mesmo ou eu realmente não entendi? Alguém tem experiência com isso e pode me ajudar?

1 resposta

Caro Murilo,

Como vc alterou um pouco o passo a passo da prática passada no curso onde a API/ bibliotecas pandas foram previamente preparadas para termos um ambiente ilustrativo e que rode sem problemas dentro que que é apresentado no curso culminado com deploy no Streamlit, a sugestão que podemos te passar num primeiro momento considerando que Google Sheets não necessariamente é uma API, seria vc lidar com o Google Sheets de uma forma vc acesse seus dados via API, Para isso, você precisa tornar a planilha pública na web e em seguida, obter o ID da planilha e a chave da API do Google Cloud Console, entende!?

Com base nisso, olhando sua pergunta destacamos que a configuração geralmente é ser feita depois do deploy, isso ocorre porque o Streamlit, por questões de segurança, não permite que você insira diretamente no seu código fonte informações sensíveis como chaves de API. Portanto, essas informações devem ser inseridas no app -> settings -> secrets, dentro da página do Streamlit, após o deploy.

Duas Etapas para vc fazer isso:

1- Primeiro, você precisa instalar a biblioteca gspread e oauth2client para acessar o Google Sheets. Você pode fazer isso com o seguinte comando:

pip install gspread oauth2client

2- Em seguida, você pode usar o seguinte código para acessar seus dados no Google Sheets:

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds',
         'https://www.googleapis.com/auth/drive']

credentials = ServiceAccountCredentials.from_json_keyfile_name('path/to/your/credentials.json', scope)

gc = gspread.authorize(credentials)

wks = gc.open('Your-google-sheet-name').sheet1

data = wks.get_all_values()
headers = data.pop(0)

df = pd.DataFrame(data, columns=headers)

Neste código, 'path/to/your/credentials.json' é o caminho para o arquivo json que contém suas credenciais do Google Cloud Console e 'Your-google-sheet-name' é o nome da sua planilha do Google Sheets.

Com isto vc deve ter um ambiente adaptado mais próximo ao usado no curso para praticar mais com o seu Google Sheets o uso de Streamlit, ok!?

Bons estudos!