As credenciais para fazer solicitações de API do Google geralmente são armazenadas em um arquivo. Isso não funciona bem quando você deseja tratar ou armazenar as credenciais de alguma outra maneira.
Eu escrevi um pequeno armazenamento de credenciais para solicitações de API do Google que armazena as credenciais obtidas em um dicionário existente: https://gist.github.com/4232775
Uso
# Build credential storage
credStore = DictStore(some_dict)
# check for credential existence
creds = credStore.get()
if (not creds):
# Create an authentication flow
authFlow = OAuth2WebServerFlow(
client_id=CLIENT_ID,
client_secret=CLIENT_SECRET,
scope="https://www.googleapis.com/auth/calendar",
user_agent="myapp/v1"
)
creds = run_auth(authFlow, credStore)
# Authorize an HTTP connection
http = httplib2.Http()
http = creds.authorize(http=http)
# Build a Google service client
service = apiclient.discovery.build('calendar', 'v3', http=http)
Após a autenticação, o dicionário some_dict
é atualizado com as informações de credencial. Isso agora pode ser serializado para JSON, por exemplo, e armazenado em um banco de dados ou na rede.