Aceder à API Admin

Antes de os utilizadores ou as aplicações poderem usar a API App Engine Admin, o Google Cloud proprietário do projeto tem de ativar primeiro a API no projeto e, em seguida, criar credenciais que os utilizadores ou as aplicações possam usar para autorizar pedidos HTTP.

Por exemplo, um proprietário tem de criar primeiro um projeto Google Cloud inicial e, em seguida, criar credenciais nesse projeto antes de qualquer pessoa poder enviar pedidos HTTP para a API Admin. Depois de o proprietário configurar o projeto inicial, este pode ser usado para fins administrativos para criar e gerir outros recursos de forma programática, por exemplo:

  • Criar outros Google Cloud projetos.
  • Criar aplicações do App Engine para todos os projetos criados recentemente.
  • Implementar versões da app em aplicações do App Engine recém-criadas.
  • Gerir recursos em todas as versões que implementou.

Antes de começar

Para concluir a tarefa seguinte, tem de ser proprietário do Google Cloud projeto onde quer ativar a API Admin para os utilizadores e as aplicações acederem.

Configurar o projeto e criar credenciais

Para configurar o seu Google Cloud projeto e criar credenciais:

  1. Ative a API App Engine Admin e a API Cloud Storage no seu Google Cloud projeto:

    Ative ambas as APIs

  2. Crie credenciais que os utilizadores e as aplicações usam para aceder à API Admin no seu projeto.

    Para criar credenciais, reveja o guia de autenticação da Google Cloud Platform e, em seguida, escolha o fluxo de autorização OAuth 2.0 que cumpre os requisitos da sua app.

Exemplos

Para demonstrar um fluxo de autenticação, os exemplos abaixo usam o fluxo OAuth 2.0 do lado do cliente para obter um token. O token é usado para autorizar pedidos à API Admin através da ferramenta de linha de comandos cURL para implementar a app de exemplo na aplicação do App Engine do projeto [MY_PROJECT_ID].

Exemplo de autenticação

Neste exemplo, o fluxo de autorização do lado do cliente conhecido como fluxo de concessão implícita requer que o utilizador autorize a aplicação cliente para aceder à API Admin em nome do utilizador. O token de acesso devolvido é válido durante aproximadamente 60 minutos ou, geralmente, enquanto o utilizador estiver ativo na sua aplicação.

Pedido HTTP

O seguinte URL usa um ID do cliente que foi criado na Google Cloud consola para pedir um token de acesso e, em seguida, redirecionar o utilizador para um URI autorizado onde a sua app recebe o token:

https://accounts.google.com/o/oauth2/v2/auth?
  response_type=token&
  client_id=[MY_CLIENT_ID].apps.googleusercontent.com&
  scope=https://www.googleapis.com/auth/cloud-platform&
  redirect_uri=[MY_REDIRECT_URI]

Onde:

  • [MY_CLIENT_ID] é um ID de cliente de uma das suas credenciais na Google Cloud consola.
  • [MY_REDIRECT_URI] é o URI de redirecionamento autorizado correspondente das mesmas credenciais na Google Cloud consola. Se não for especificado nenhum URI de redirecionamento, tem de especificar um URI fidedigno, por exemplo, https://www.google.com. O URI de redirecionamento define para onde a resposta HTTP é enviada. Para produção, tem de especificar o ponto final de autorização da sua aplicação, que processa as respostas do servidor OAuth 2.0. Para mais informações, consulte o artigo Usar o OAuth 2.0 para aplicações de servidor Web.

Resposta HTTP

Quando a aplicação usa o URL para pedir autorização, a chave de acesso é devolvida numa resposta, por exemplo:

https://www.google.com/#access_token=[MY_ACCESS_TOKEN]&
  token_type=Bearer&
  expires_in=3600

Em que [MY_ACCESS_TOKEN] é o token de acesso devolvido que pediu.

Depois de obter um token de acesso, pode usá-lo para aceder à API Admin. Por exemplo, o ponto final de autorização da sua aplicação pode extrair programaticamente a chave de acesso da resposta. Consulte o exemplo seguinte para saber como usar manualmente o seu token num comando cURL.

Exemplo de pedido HTTP com cURL

O comando cURL seguinte demonstra como pode usar o seu [MY_ACCESS_TOKEN]token de acesso para fazer um pedido HTTP POST. Este comando cURL implementa os recursos definidos no ficheiro de configuração app.json na versão v1 do serviço default na aplicação do projeto MY_PROJECT_ID.

curl -X POST -T "app.json" -H "Content-Type: application/json" -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions

O que se segue?