Como usar chaves de API

Selecione a plataforma: Android iOS JavaScript Serviço da Web

Antes de começar

Para começar a usar o SDK do Places para Android, você precisa de um projeto com uma conta de faturamento, além de estar com esse SDK ativado. Para saber mais, consulte Configurar no Console do Cloud.

Criar chaves de API

A chave de API é um identificador exclusivo que autentica solicitações associadas ao seu projeto para fins de uso e faturamento. Você precisa ter pelo menos uma chave de API associada ao projeto.

Para criar uma chave de API, siga estas etapas:

Console

  1. Acesse a página Plataforma Google Maps > Credenciais.

    Acessar a página "Credenciais"

  2. Na página Credenciais, clique em Criar credenciais > Chave de API.
    A caixa de diálogo Chave de API criada exibirá sua chave recém-criada.
  3. Clique em Fechar.
    A nova chave vai aparecer na página Credenciais, em Chaves de API.
    Lembre-se de restringir a chave de API antes de usar na produção.

SDK do Cloud

gcloud alpha services api-keys create \
    --project "PROJECT" \
    --display-name "DISPLAY_NAME"

Saiba mais sobre o SDK do Google Cloud, a instalação do SDK do Cloud e os seguintes comandos:

Restringir chaves de API

O Google recomenda que você restrinja as chaves de API limitando o uso somente às APIs necessárias para o aplicativo. Isso deixa o app mais seguro, protegendo contra pedidos não autorizados. Para mais informações, consulte Práticas recomendadas de segurança de APIs.

Ao restringir a chave de API, é necessário fornecer a impressão digital do certificado SHA-1 da chave usada para assinar o app. Há dois tipos de certificado:

  • Certificado de depuração: use esse tipo apenas com apps em teste e outros códigos que não sejam de produção. Não tente publicar um app assinado com um certificado de depuração. As ferramentas do SDK do Android geram esse certificado automaticamente quando você executa uma versão de depuração.
  • Certificado de lançamento: use esse tipo quando tudo estiver pronto para lançar seu aplicativo em uma app store. As Ferramentas do SDK do Android geram esse certificado quando você executa um build de lançamento.

Para mais informações sobre os certificados digitais, consulte o guia Assinar seu app.

Para mais informações sobre como conseguir a impressão digital do certificado, consulte Como autenticar seu cliente. Se você estiver usando a Assinatura de apps do Google Play, acesse a página de assinatura de apps no Play Console para registrar sua impressão digital do certificado.

Para restringir uma chave de API, faça o seguinte:

Console

  1. Acesse a página Plataforma Google Maps > Credenciais.

    Acessar a página "Credenciais"

  2. Selecione a chave de API em que você quer definir uma restrição. A página de propriedades será exibida.
  3. Em Restrições de chave, defina as seguintes opções:
    • Restrições do aplicativo:
      1. Selecione Apps Android.
      2. Clique em + Adicionar nome do pacote e impressão digital.
      3. Insira o nome do pacote e a impressão digital do certificado SHA-1. Por exemplo:
        com.example.android.mapexample
        BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
    • Restrições de API:
      1. Clique em Restringir chave.
      2. Escolha API Places na lista suspensa Selecionar APIs. Se a API Places não aparecer na lista, você precisará ativá-la.
  4. Para concluir as mudanças, clique em Salvar.

SDK do Cloud

Liste as chaves atuais.

gcloud services api-keys list --project="PROJECT"

Limpe as restrições atuais na chave.

gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --clear-restrictions

Defina novas restrições para as chaves atuais.

gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --api_target="places-backend.googleapis.com"
    --allowed-application="sha1_fingerprint=SHA1_FINGERPRINT,package_name=ANDROID_PACKAGE_NAME"

Saiba mais sobre o SDK do Google Cloud, a instalação do SDK do Cloud e os seguintes comandos:

Encontrar as informações do certificado do app

A chave de API é baseada em uma forma curta do certificado digital do seu app, conhecida como impressão digital SHA-1. Para exibir a impressão digital SHA-1 do seu certificado, primeiro verifique se você está usando o certificado correto. Você pode ter dois certificados:

  • Um certificado de depuração: as Ferramentas do SDK do Android geram esse certificado automaticamente quando você faz um build de depuração. Use-o apenas com apps em teste. Não tente publicar um aplicativo assinado com um certificado de depuração. Veja mais detalhes sobre esse certificado em Fazer login no modo de depuração, na documentação do desenvolvedor Android.
  • Um certificado de lançamento: as Ferramentas do SDK do Android geram esse certificado quando você faz um build de lançamento. Também é possível gerá-lo usando o programa keytool. Utilize esse certificado quando tudo estiver pronto para lançar seu app.

Com o Gradle

O Gradle facilita muito a busca das informações de assinatura do app. Basta executar o comando ./gradlew signingReport.

A resposta será semelhante a esta:

Task :app:signingReport

Variant: debug
Config: debug
Store: ~/.android/debug.keystore
Alias: AndroidDebugKey
MD5: 76:4E:BF:C3:59:DA:D3:8F:98:D6:3C:DB:87:A4:5B:E7
SHA1: 99:8E:73:B8:3A:A3:A3:C4:C1:D4:19:08:F6:7E:9E:F6:75:29:4C:B2
SHA-256: 6C:01:12:53:90:94:73:B5:66:D6:07:FF:A5:6F:AB:30:AE:99:20:55:0F:B3:12:22:4C:46:7E:02:3D:7E:6D:1D
Valid until: Friday, June 25, 2049
----------
Variant: release
Config: release
Store: app/keystore.jks
Alias: keystore
MD5: 1E:63:0F:14:67:E0:04:BD:98:4C:EB:2B:09:EF:7E:1E
SHA1: 2C:DF:9F:D1:A3:0D:1E:01:48:34:5D:91:52:0B:D8:8A:5A:07:45:C3
SHA-256: 12:66:CE:4B:90:FD:64:1A:4D:79:9E:78:AD:59:0C:21:D8:53:61:EE:2B:90:E4:67:CE:65:A0:76:04:13:23:89
Valid until: Tuesday, September 29, 2116

Manualmente

Siga as etapas abaixo para exibir a impressão digital SHA-1 do certificado usando o programa keytool com o parâmetro -v. Para mais informações sobre o Keytool, consulte a documentação da Oracle.

Certificado de depuração

Exibir a impressão digital do certificado de depuração

  1. Localize o arquivo de keystore de depuração. O nome do arquivo é debug.keystore, e ele é gerado no momento em que você cria seu projeto. Por padrão, ele fica armazenado no mesmo diretório que os arquivos do Dispositivo virtual Android (AVD, na sigla em inglês):

    • macOS e Linux: ~/.android/
    • Windows Vista e Windows 7: C:\Users\your_user_name\.android\
  2. Liste a impressão digital SHA-1:

    • Para Linux ou macOS, abra uma janela do terminal e digite o seguinte:

      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    • No Windows Vista e Windows 7, execute este código:

      keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

Será exibida uma saída semelhante a esta:

Alias name: androiddebugkey
Creation date: Jan 01, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4aa9b300
Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033
Certificate fingerprints:
     MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9
     SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75
     Signature algorithm name: SHA1withRSA
     Version: 3

Certificado de publicação

Exibir a impressão digital do certificado de lançamento

  1. Localize o arquivo de keystore do certificado de lançamento. Não há local nem nome padrão para o keystore de lançamento. Se você não especificar esses itens ao criar seu app, .apk ficará sem assinatura, e será preciso assiná-lo antes da publicação. Para o certificado de lançamento, você também precisa do alias do certificado e das senhas do keystore e do certificado. É possível listar os aliases de todas as chaves em um keystore digitando o seguinte:

    keytool -list -keystore your_keystore_name

    Substitua your_keystore_name pelo caminho e nome totalmente qualificados do keystore, incluindo a extensão .keystore. Você precisará inserir a senha do keystore. Em seguida, keytool exibirá todos os aliases relevantes.

  2. Digite o seguinte em um terminal ou no prompt de comando:

    keytool -list -v -keystore your_keystore_name -alias your_alias_name

    Substitua your_keystore_name pelo caminho e nome totalmente qualificados do keystore, incluindo a extensão .keystore. Troque your_alias_name pelo alias que você atribuiu ao certificado quando o criou.

Será exibida uma saída semelhante a esta:

Alias name: <alias_name>
Creation date: Feb 02, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4cc9b300
Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033
Certificate fingerprints:
    MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9
    SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75
    Signature algorithm name: SHA1withRSA
    Version: 3

A linha que começa com SHA1 contém a impressão digital SHA-1 do certificado. Essa impressão é a sequência de 20 números hexadecimais de dois dígitos separados por dois pontos.

O que vem a seguir

Agora que você tem uma chave de API, crie e configure um projeto conforme descrito em Configurar um projeto do Android Studio.