Login com Amazon Guia de primeiros passos para Android
Login com Amazon: Guia de primeiros passos para Android
Copyright © 2016 Amazon.com, Inc. ou suas afiliadas. Todos os direitos reservados. Amazon e o logotipo da Amazon são marcas comerciais da Amazon.com, Inc. ou de suas afiliadas. Todas as outras marcas comerciais não pertencentes à Amazon são propriedade de seus respectivos proprietários.
Primeiros passos para Android
Neste guia, mostraremos como adicionar Login com Amazon ao seu aplicativo Android. Depois de concluir este guia, você deverá ter um botão Login com Amazon em funcionamento em seu aplicativo para permitir que os usuários façam login com suas credenciais da Amazon.
Instalando as ferramentas para desenvolvedores Android
O Login with Amazon SDK para Android ajudará você a adicionar o Login with Amazon ao seu aplicativo Android. Recomendamos que você use o Login com Amazon SDK para Android em developer.amazon.com com Android Studio. No entanto, você também pode usar o plugin Eclipse com ADT. Para obter etapas sobre como instalar o Android Studio e configurar o Android SDK, consulte Obtenha o SDK do Android em developer.android.com.
Quando o Android SDK estiver instalado, encontre o Gerenciador de SDK aplicativo em sua instalação do Android. Para desenvolver para Login com Amazon, você deve utilizar o SDK Manager para instalar a Plataforma SDK para Android 2.2 ou superior (API versão 8). Ver Adicionando Pacotes SDK em developer.android.com para obter mais informações sobre como usar o SDK
Depois de instalar o SDK, configure um Android Virtual Device (AVD) para executar seus aplicativos. Ver Gerenciando Dispositivos virtuais em developer.android.com para obter instruções sobre como configurar um dispositivo virtual.
Quando seu ambiente de desenvolvimento é configurado, você pode Instale o Login com Amazon SDK para Android or Execute o Sampo aplicativo, como descrito abaixo.
Instale o Login com Amazon SDK para Android
O Login com Amazon SDK para Android vem em dois pacotes. O primeiro contém a biblioteca Android e a documentação de suporte. O segundo contém comoample aplicativo que permite que um usuário faça login e exiba seu perfilfile dados.
Se você ainda não instalou o Android SDK ou as Android Development Tools, consulte o Instalando as ferramentas de desenvolvedor Android seção acima.
- Download fecho eclair e extrair o files para um diretório em seu disco rígido.
Você deve ver um doutor e um livre subdiretório. - Abrir doc/index.html para view o Login com Amazon Android API
- Ver Instale o Login com Amazon Library, para obter instruções sobre como adicionar a biblioteca e documentação a um Android
Quando o Login com Amazon SDK para Android é instalado, você pode Crie um novo login com a Amazon Projeto, depois Registrando-se com Login na Amazon .
Execute o Sampo aplicativo
Para executar o sampo aplicativo, importe os samparquivo em um espaço de trabalho do AndroidStudio (se você estiver usando o Eclipse, também deverá adicionar um keystore de depuração personalizado ao espaço de trabalho. Consulte o arquivo Adicione a depuração personalizada Armazenamento de chaves no Eclipse seção abaixo). A chave de API que o sampO arquivo que o aplicativo usa exige que o espaço de trabalho use o keystore fornecido com o software.ampeu. Se o keystore personalizado não estiver instalado, os usuários não poderão efetuar login usando o sampeu. O keystore será obtido automaticamente se você estiver usando o AndroidStudio.
- Download SampleLoginWithAmazonAppForAndroid-src.zip e extrair o files para um diretório em seu disco
- Inicie o Android Studio e selecione Abra um projeto existente do Android Studio
- Navegue até o SampleLoginWithAmazonApp diretório obtido após extrair o zip baixado file em etapa
- Do Construir menu, clique Fazer Projetoe espere o projeto terminar
- Do Correr menu, clique Correr e então clique no SampleLoginWithAmazonApp.
- Selecione o emulador ou dispositivo Android conectado e clique em Correr.
Adicione o armazenamento de chaves de depuração personalizado no Eclipse
Se você estiver usando o Eclipse, siga as instruções abaixo para adicionar o keystore de depuração customizado:
- No Preferências diálogo, selecione Andróide e Construir.
- Ao lado de Personalizado Depurar armazenamento de chaves, clique Navegar.
- Navegue até o sample diretório do aplicativo e selecione 3p.keystore, e então clique OK.
Registrando-se com Login na Amazon
Antes de poder usar o Login com a Amazon em um website ou em um aplicativo móvel, você deve registrar um aplicativo com Login com Amazon. Seu aplicativo Login com Amazon é o registro que contém informações básicas sobre seu negócio e informações sobre cada website ou aplicativo móvel que você cria que oferece suporte ao Login com a Amazon. Essas informações comerciais são exibidas aos usuários sempre que eles usam o Login com a Amazon em seu website ou aplicativo móvel. Os usuários verão o nome do seu aplicativo, seu logotipo e um link para sua política de privacidade. Estas etapas demonstram como registrar um aplicativo Login with Amazon e adicionar um aplicativo Android a essa conta.
Veja os seguintes tópicos:
- Registre seu login com o aplicativo Amazon
- Registre seu aplicativo Android
- Adicionar um aplicativo Android para Amazon Appstore
- Adicione um aplicativo Android sem Appstore
- Assinaturas de aplicativos Android e chaves de API
- Determinando uma assinatura de aplicativo Android
- Recuperando uma chave de API do Android
Registre seu login com o aplicativo Amazon
- Vá para https://login.amazon.com.
- Se você já se inscreveu para Login com a Amazon antes, clique em Console de aplicativos. Caso contrário, clique Inscrever-se. Você será redirecionado para a Central do Vendedor, que lida com o registro do aplicativo para Login com Se esta for a primeira vez que usa a Central do Vendedor, será solicitado que você configure uma conta da Central do Vendedor.
- Clique Registrar Nova Aplicação. O Registre sua aplicação o formulário aparecerá:
a. No Registre sua aplicação formulário, insira um Nome e um Descrição para sua aplicação.
O Nome é o nome exibido na tela de consentimento quando os usuários concordam em compartilhar informações com seu aplicativo. Este nome se aplica ao Android, iOS e webversões do site do seu aplicativo.
b. Digite um Aviso de privacidade URL para sua aplicação
O Aviso de privacidade URL é a localização da política de privacidade de sua empresa ou aplicativo (por exemplo,ampele, http://www.example.com/privacy.html). Este link é exibido aos usuários na tela de consentimento.
c. Se você quiser adicionar um Imagem do logotipo para sua aplicação, clique Navegar e localize a imagem aplicável.
Este logotipo é exibido na tela de login e consentimento para representar sua empresa ou website. O logotipo será reduzido para 50 pixels de altura se tiver mais de 50 pixels de altura; não há limitação na largura do logotipo - Clique Salvar. Seuampo registro deve ser semelhante a este:
Depois que as configurações básicas do aplicativo forem salvas, você pode adicionar configurações para aplicativos específicos. websites e aplicativos móveis que usarão este Login com conta da Amazon.
Registre seu aplicativo Android
Para registrar um aplicativo Android, você tem a opção de registrar um aplicativo através da Amazon Appstore (Adicionar um aplicativo Android para Amazon Appstore, pág. 8) ou diretamente com Login com Amazon (Adicionar um Android Aplicativo sem Appstore, pág. 9). Quando seu aplicativo for registrado, você terá acesso a uma chave API que concederá ao seu aplicativo acesso ao serviço de autorização Login with Amazon.
Observação: Se você planeja usar Amazon Device Messaging em seu aplicativo Android, entre em contato lwa- suporte@amazon.com com:
- O endereço de e-mail da conta Amazon que você usou para se inscrever no Login com Amazon.
- O endereço de e-mail da conta da Amazon que você usou para se inscrever na Amazon Appstore (se for diferente).
- O nome em sua conta do Seller Central. (Na Central do Vendedor, clique em Configurações> Informações da conta> Informações do vendedor, e use o Nome de exibição).
- O nome na sua conta de desenvolvedor da Amazon Appstore. (No site Mobile App Distribution, clique em Configurações > Empresa Prófile e usar o Nome do desenvolvedor ou nome da empresa).
Adicionar um aplicativo Android para Amazon Appstore
As etapas a seguir irão adicionar um aplicativo Amazon Appstore ao seu Login com conta Amazon:
- Na tela do aplicativo, clique em Configurações do Android. Se você já tem um aplicativo Android registrado, procure o Adicionar chave API botão no Configurações do Android
O Detalhes do aplicativo Android o formulário aparecerá: - Selecione Sim em resposta à pergunta “Este aplicativo é distribuído por meio da Amazon Appstore?”
- Entre no Rótulo do seu aplicativo Android. Não precisa ser o nome oficial do seu aplicativo. Ele simplesmente identifica este aplicativo Android específico entre os aplicativos e websites registrados em seu Login com o aplicativo Amazon.
- Adicione seu ID da Amazon Appstore.
- Se você autoassinou seu aplicativo, adicione informações de autoassinatura. Isso permitirá que você obtenha uma chave de API durante o desenvolvimento sem usar diretamente a Appstore:
a. Se o seu aplicativo não estiver sendo assinado pela Amazon Appstore, selecione Sim em resposta à pergunta “Este aplicativo é autoassinado?”
O Detalhes do aplicativo Android o formulário será expandido:
b. Digite seu Nome do pacote.
Deve corresponder ao nome do pacote do seu projeto Android. Para determinar o nome do pacote do seu projeto Android, abra o projeto na ferramenta de desenvolvedor Android de sua preferência.
Abrir AndroidManifest.XML no Package Explorer e selecione o Manifesto aba. A primeira entrada é o nome do pacote.
c. Entre no aplicativo Assinatura.
Este é um valor de hash SHA-256 usado para verificar seu aplicativo. A assinatura deve ser na forma de 32 pares hexadecimais separados por dois pontos (por exampem: 01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef:01: 3:45:67:89:a b:cd:ef). Ver Assinaturas de aplicativos Android e chaves de API para ver as etapas que você pode usar para extrair a assinatura do seu projeto. - Clique Salvar.
Se diferentes versões de seu aplicativo tiverem assinaturas ou nomes de pacote diferentes, como para uma ou mais versões de teste e uma versão de produção, cada versão exigirá sua própria chave de API. De Configurações do Android do seu aplicativo, clique no Adicionar chave API botão para criar chaves adicionais para seu aplicativo (uma por versão).
Assinaturas de aplicativos Android e chaves de API
A assinatura do aplicativo é um valor de hash SHA-256 que é aplicado a todos os aplicativos Android quando ele é construído. A Amazon usa a assinatura do aplicativo para construir sua chave de API. A chave API permite que os serviços da Amazon reconheçam seu aplicativo. Se você usar a Amazon Appstore para assinar seu aplicativo, a chave API é fornecida automaticamente. Se não estiver usando a Amazon Appstore, você precisará gerenciar sua chave de API manualmente.
As assinaturas de aplicativos são armazenadas em um keystore. Geralmente, para aplicativos Android, há um keystore de depuração e um keystore de lançamento. O keystore de depuração é criado pelo plug-in Android Development Tools para Eclipse e é usado por padrão. Você pode encontrar o local do keystore de depuração no Eclipse clicando em Janela, e então selecionando Preferências > Android > Construir. Nessa tela você também pode adicionar seu próprio keystore de depuração. Para o Android Studio, no Construir menu, selecione Editar tipos de compilação, então vá para o Assinando guia e localize o keystore de depuração no Loja File campo.
Um keystore de liberação normalmente é criado quando você exporta seu aplicativo Android para criar um APK assinado file.
Através do processo de exportação, se você estiver criando um novo keystore de lançamento, você selecionará seu local. Por
padrão, ele será colocado no mesmo local que seu KeyStore de depuração padrão.
Se você registrou seu aplicativo usando a assinatura de depuração durante o desenvolvimento, terá que adicionar uma nova configuração Android ao seu aplicativo quando estiver pronto para lançar o aplicativo. A nova configuração do aplicativo deve usar a assinatura do keystore de liberação.
Ver Assinando seus aplicativos em developer.android.com para obter mais informações.
Determinar a assinatura do aplicativo Android
- Se você tiver um APK assinado file:
a. Descompacte o APK file e extrair CERT.RSA. (Você pode renomear a extensão APK para ZIP, se necessário).
b. Na linha de comando, execute:keytool -printcert-file CERT.RSA Keytoolis localizado no lata diretório de instalação do Java.
- Se você tem um keystore file:
a. Na linha de comando, execute:keytool -list -v -alias - keystorefilenome> Ferramenta de chave está localizado no diretório bin da instalação do Java. O alias é o nome da chave usada para assinar o aplicativo.
b. Digite a senha da chave e pressione Digitar. - Sob Impressões digitais de certificado, copie o SHA256 valor.
Recupere a chave de API do Android
Depois de registrar uma configuração do Android e fornecer uma assinatura de aplicativo, você pode recuperar a chave API da página de registro do seu aplicativo Login com Amazon. Você precisará colocar essa chave de API em um file em seu projeto Android. Até que você faça isso, o aplicativo não será autorizado a se comunicar com o serviço de autorização Login com Amazon.
- Vá para https://login.amazon.com.
- Clique Console de aplicativos.
- No Aplicações caixa à esquerda, selecione seu
- Encontre seu aplicativo Android no Configurações do Android (Se você ainda não registrou um aplicativo Android, consulte Adicionar um aplicativo Android para Amazon Appstore).
- Clique Gerar valor-chave de API. Uma janela pop-up exibirá sua chave API. Para copiar a chave, clique em Selecionar tudo para selecionar todo
Observação: o valor da chave de API baseia-se, em parte, no momento em que é gerado. Portanto, os valores de chave de API subsequentes que você gerar poderão diferir do original. Você pode usar qualquer um desses valores-chave de API em seu aplicativo, pois todos são válidos. - Ver Adicione sua chave de API ao seu projeto para obter instruções sobre como adicionar a chave de API ao seu Android
Criando um Login com o Projeto Amazon
Nesta seção, você aprenderá como criar um novo projeto Android para Login com Amazon, configurar o projeto e adicionar código ao projeto para conectar um usuário com Login com Amazon. Estaremos descrevendo as etapas para o Android Studio, mas você pode aplicar etapas análogas a qualquer IDE ou ferramenta de desenvolvimento Android de sua escolha.
Veja os seguintes tópicos:
- Crie um novo login com o projeto Amazon
- Instale o Login com Biblioteca Amazon
- Habilite o Content Assist para login com Amazon Library
- Definir permissões de rede para seu aplicativo
- Adicione sua chave de API ao seu projeto
- Remova o Sample App Custom Debug Keystore
- Lidar com alterações de configuração para sua atividade
- Adicione uma atividade de autorização ao seu projeto
- Adicionar um login com Amazon Button ao seu aplicativo
- Manuseie o botão de login e obtenha o Profile Dados
- Verifique o login do usuário na inicialização
- Limpar o estado de autorização e desconectar um usuário
- Chame métodos do Amazon Authorization Manager de forma síncrona
Crie um novo login com o projeto Amazon
Se você ainda não tem um projeto de aplicativo para usar o Login com Amazon, siga as instruções abaixo para criar um. Se você tiver um aplicativo existente, pule para Instale o Login com Biblioteca Amazon .
- Lançar Ferramenta de desenvolvimento Android.
- Do File menu, selecione Novo e Projeto.
- Insira um Nome do aplicativo e nome da empresa para o seu
- Entre no Aplicativo e nome da empresa correspondente ao nome do pacote que você escolheu quando registrou seu aplicativo com Login na Amazon.
Se você ainda não registrou seu aplicativo, escolha um Nome do pacote e siga as instruções no Registrando-se com Login na Amazon seção depois de criar seu projeto. Se o nome do pacote do seu aplicativo não corresponder ao nome do pacote registrado, suas chamadas de Login com Amazon não serão bem-sucedidas. - Selecione um SDK mínimo necessário da API 8: Android 2 (Froyo) ou superior e clique em Próximo.
- Selecione o tipo de atividade que deseja criar e clique Próximo.
- Preencha os detalhes relevantes e clique em Terminar.
Agora você terá um novo projeto em seu espaço de trabalho que pode ser usado para chamar Login com Amazon.
Instale o Login com Biblioteca Amazon
Se você ainda não baixou o Login com Amazon SDK para Android, consulte Instale o Login com Amazon SDK para Android (pág. 4).
- Com seu projeto aberto nas Ferramentas para Desenvolvedores Android, em Explorador de projetos, clique com o botão direito em seu Projeto.
- Se uma pasta chamada bibliotecas ainda não está presente, crie
- Copie o login-com-amazon-sdk.jar file do File Sistemae cole-o no bibliotecas diretório em seu projeto/aplicativo.
- Clique com o botão direito login-com-amazon-sdk.jar, e verifique o Adicionar como biblioteca
Habilite o Content Assist para login com Amazon Library no Eclipse
Para ativar o suporte do assistente de conteúdo do Eclipse em um projeto Android é necessário usar um .propriedades file. Para obter mais informações sobre o assistente de conteúdo, consulte Assistência de conteúdo/código onhelp.eclipse.org.
Para ativar o suporte do assistente de conteúdo do Eclipse em um projeto Android é necessário usar um .propriedades file. Para obter mais informações sobre o assistente de conteúdo, consulte Assistência de conteúdo/código onhelp.eclipse.org.
- In Explorador do Windows, navegue até o documentos pasta para Login com Amazon SDK para Android e copie a pasta para o
- Com seu projeto aberto, vá para Explorador de Pacotes e selecione o bibliotecas Clique Editar no menu principal e selecione Colar. Você agora deve ter um bibliotecas\docs diretório.
- Selecione o bibliotecas Clique File no menu principal e selecione Novo eFile.
- No Novo File diálogo, entrar login-com-amazon-sdk.jar.properties e clique Terminar.
- O Eclipse deve abrir login-com-amazon-sdk.jar.properties no editor de texto. No editor de texto, adicione a seguinte linha ao file:
doc = documentos - Do File menu, clique Salvar.
- Pode ser necessário reiniciar o Eclipse para que as alterações tenham efeito
Definir permissões de rede para seu aplicativo
Para que seu aplicativo use o Login com a Amazon, ele deve acessar a Internet e acessar as informações de estado da rede. Seu aplicativo deve declarar essas permissões em seu manifesto Android, se ainda não o fez.
OBSERVAÇÃO: as etapas do procedimento abaixo são específicas para adicionar permissões no Eclipse. Se você estiver usando o Android Studio ou um IDE diferente, poderá pular todas as etapas numeradas abaixo. Em vez disso, copie as linhas de código exibidas abaixo da captura de tela e cole-as no arquivo AndroidManifest.xml file, fora do bloco do aplicativo.
- In Pacote Explorador, clique duas vezes xml.
- No Permissões aba, clique Adicionar.
- Selecione Permissão de uso e clique OK.
- Para a direita de Permissões, encontre o Atributos para permissão de uso
- No Nome caixa, entre permissão. INTERNET ou selecione-o no menu suspenso.
- No Permissões aba, clique Adicionar
- Selecione Permissão de uso e clique OK.
- No Nome caixa, entre permissão.ACCESS_NETWORK_STATE ou selecione-o no menu suspenso
- Do File menu, clique Salvar.
Suas permissões de manifesto agora devem ter os seguintes valores:
No AndroidManifest.xml guia, agora você deve ver estas entradas no elemento de manifesto:
Adicione sua chave de API ao seu projeto
Quando você registra seu aplicativo Android com Login na Amazon, você recebe uma chave de API. Este é um identificador que o Amazon Authorization Manager usará para identificar seu aplicativo para o Login com o serviço de autorização da Amazon. Se você estiver usando a Amazon Appstore para assinar seu aplicativo, a Appstore fornecerá a chave de API automaticamente. Se você não estiver usando a Amazon Appstore, o Amazon Authorization Manager carrega esse valor no tempo de execução do api_key.txt file no ativos diretório.
- Se você ainda não tem sua chave de API, siga as instruções em Recupere a chave de API do Android (pág. 11).
- Com seu projeto ADT aberto, a partir do File menu, clique Novo e selecione Texto sem título File. Agora você deve ter uma janela de edição para um texto file nomeado Sem título 1. Adicione sua chave de API ao texto
- Do File menu, clique Salvar como.
- No Salvar como diálogo, selecione o ativos diretório do seu projeto como a pasta pai. Para File nome, digitar TXT.
Remova o Sample App Custom Debug Keystore
OBSERVAÇÃO: esta etapa será necessária somente se você estiver usando o Eclipse; se você estiver usando o Android Studio, pule esta seção.
Se você instalou o Login com Amazon para Androidample aplicativo no mesmo espaço de trabalho que você está usando para seu aplicativo Android, você pode ter um keystore de depuração personalizado definido para o espaço de trabalho. Você precisa limpar o keystore de depuração personalizado para usar sua própria chave de API.
- No menu principal, clique em Janela e selecione Preferências.
- No Preferências diálogo, selecione Andróide e Construir.
- Limpar o Personalizado depurar armazenamento de chaves
- Clique OK.
Lidar com alterações de configuração para sua atividade
Se um usuário alterar a orientação da tela ou alterar o estado do teclado do dispositivo durante o login, ele solicitará o reinício da atividade atual. Essa reinicialização dispensará a tela de login inesperadamente. Para evitar isso, você deve definir a atividade que usa o método de autorização para lidar com essas alterações de configuração manualmente. Isso impedirá o reinício da atividade.
- In Pacote Explorador, clique duas vezes xml.
- No Aplicativo seção, localize a atividade que tratará do Login com Amazon (por exemploampele, Atividade principal).
- Adicione o seguinte atributo à atividade localizada na Etapa 2:
android: configChanges = ”teclado | tecladoHidden | orientação” Ou para API 13 ou superior:
android: configChanges = ”keyboard | keyboardHidden | orientação | screenSize” - Do File menu, clique Salvar
Agora, quando ocorrer uma mudança de orientação do teclado ou do dispositivo, o Android chamará o onConfigurationChanged método para sua atividade. Você não precisa implementar esta função, a menos que haja um aspecto dessas alterações de configuração que você deseja tratar em seu aplicativo
Quando o usuário clica no botão Login com Amazon, a API inicia um web navegador para apresentar uma página de login e consentimento ao usuário. Para que esta atividade do navegador funcione, você deve adicionar AuthorizationActivity ao seu manifesto.
- In Pacote Explorador, clique duas vezes xml.
- No Aplicativo seção, adicione o seguinte código, substituindo “com.example.app” pelo nome do pacote deste aplicativo:
<activity android:name=
“com.amazon.identity.auth.device.authorization.AuthorizationActivity” android:theme=”@android:style/Theme.NoDisplay” android:allowTaskReparenting=”true” android:launchMode=”singleTask”>
<action android:name=”android.intent.action.VIEW” />
<dados
android:host=”com.example.app” android:scheme=”amzn” />
seu aplicativo. Esta seção fornece etapas para baixar uma imagem oficial do Login with Amazon e emparelhá-la com um ImageButton do Android.
- Adicione um ImageButton padrão ao seu aplicativo.
Para obter mais informações sobre os botões do Android e a classe ImageButton, consulte Botões em developer.android.com. - Dê um ID ao seu botão.
Na declaração XML do botão, defina o atributo android:id como @+id/login_with_amazon. Para exampem:android: id = ”@ + id / login_with_amazon” - Escolha uma imagem de botão.
Consulte nosso Login com a Amazon Diretrizes de estilo para obter uma lista de botões que você pode usar em seu aplicativo. Baixe uma cópia do LWA_Android.zip file. Extraia uma cópia do botão de sua preferência para cada densidade de tela compatível com seu aplicativo (xxhdpi, xhdpi, hdpi, mdpi ou tvdpi). Para obter mais informações sobre o suporte de múltiplas densidades de tela no Android, consulte Layouts Alternativos no tópico “Suportando telas múltiplas” ondeveloper.android.com. - Copie a imagem do botão apropriada files para seu projeto.
Para cada densidade de tela compatível (xhdpi, hdpi, mdpi ou ldpi), copie o botão baixado para o res / drawable diretório para essa densidade de tela. - Declare a imagem do botão.
Na declaração XML do botão, defina o atributo android:src com o nome do botão que você escolheu. Para exampem:android: src = ”@ drawable / btnlwa_gold_loginwithamazon.png” 6. Carregue seu aplicativo e verifique se o botão agora possui uma imagem Login with Amazon. Você deve verificar se o botão é exibido corretamente para cada densidade de tela compatível.
Esta seção explica como chamar o comando authorize e getProfile APIs para fazer login de um usuário e recuperar seu perfilfile dados. Isso inclui a criação de um ouvinte onClick para o botão Login with Amazon no método onCreate do seu aplicativo.
- Adicione Login com Amazon ao seu projeto Android. Ver Instale o Login com Biblioteca Amazon .
- Importe o Login com Amazon API para sua fonte
Para importar a API Login with Amazon, adicione as seguintes instruções de importação à sua fonte file:importar com.amazon.identity.auth.device.AuthError; importar
com.amazon.identity.auth.device.authorization.api.
AmazonAutorizationManager; importar
com.amazon.identity.auth.device.authorization.api. AutorizaçãoListener; importar com.amazon.identity.auth.device.authorization.api.AuthzConstants; - Inicializar AmazonAutorizationManager.
Você precisará declarar um AmazonAutorizationManager variável e crie uma nova instância da classe. A criação de uma nova instância requer apenas o contexto do aplicativo atual e um pacote vazio. O melhor lugar para inicializar AmazonAutorizationManager está no emCriar método de sua atividade. Para exampem: - Crie um AuthorizeLiistener.
AutorizeOuvinte implementa a interface AuthorizatioinListener e processará o resultado do autorizar chamada. Ele contém três métodos: oinSuccess, emErro, e em Cancelar. Cada método recebe um Bundle ou um Erro de autenticação objeto.classe privada AuthorizeListener implementa AuthorizationListener{
/ * A autorização foi concluída com sucesso. * /
@ Override
public void onSuccess(resposta do pacote) {
}
/* Ocorreu um erro durante a tentativa de autorizar o aplicativo.
*/
@ Override
public void onError (AuthError ae) {
}
/* A autorização foi cancelada antes que pudesse ser concluída. */
@ Override
public void onCancel(causa do pacote) {
}
} - Chamar AmazonAuthorizationManager.autorize.
No ao clicar manipulador para o botão Login com Amazon, chame autorizar para solicitar que o usuário faça login e autorize seu aplicativo.
Este método é responsável por autorizar o cliente de uma das seguintes formas:- Muda para o navegador do sistema e permite que o cliente faça login e concorde com a solicitação
- Muda para web view em um contexto seguro, para permitir que o cliente faça login e concorde com o solicitado
Este contexto seguro para o número 2 está atualmente disponível como o aplicativo Amazon Shopping em dispositivos Android. Dispositivos criados pela Amazon executando Fire OS (por exemploample Kindle Fire, Fire Phone e Fire TV) sempre use esta opção mesmo se não houver nenhum aplicativo Amazon Shopping no dispositivo. Por isso, se o cliente já estiver conectado ao aplicativo Amazon Shopping, esta API irá pular a página de login, levando a um Login único experiência para o cliente.
Quando seu aplicativo é autorizado, ele é autorizado para um ou mais conjuntos de dados conhecidos como escopos. O primeiro parâmetro é uma matriz de escopos que abrange os dados do usuário que você está solicitando do Login with Amazon. Na primeira vez que um usuário fizer login em seu aplicativo, ele verá uma lista dos dados que você está solicitando e solicitará aprovação. O Login com Amazon atualmente oferece suporte a três escopos: profile, que contém o nome do usuário, endereço de e-mail e ID da conta Amazon; prófile:ID do usuário, que contém apenas o ID da conta da Amazon; e Código postal, que contém o CEP / código postal do usuário.
A melhor maneira de chamar a autorização é de forma assíncrona, para que você não precise bloquear o thread de UI ou criar seu próprio thread de trabalho. Chamar autorizar de forma assíncrona, passe um objeto que suporte o AutorizaçãoListenerinterface como último parâmetro:AmazonAuthorizationManager privado mAuthManager; @ Override
protegido void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
mAuthManager = novo AmazonAuthorizationManager(este, Bundle.EMPTY);// Encontre o botão com o ID login_with_amazon
// e configurar um gerenciador de cliques
mLoginButton = (Botão) encontrarViewById(R.id.login_with_amazon);
mLoginButton.setOnClickListener(new OnClickListener() {
@ Override
public void onClick (View v) {
mAuthManager.authorize(
nova String []{“profile","Código postal"},
Bundle.EMPTY, novo AuthorizeListener());
}
});
} - Criar um PrófileOuvinte.
PrófileOuvinte é o nosso nome para uma classe que implementa o APIListener interface e processará o resultado do getProfile chamar. APIListener contém dois métodos: no Sucesso e onError (não suporta onCancelar porque não há como cancelar um getProfile ligar). no Sucesso recebe um objeto Bundle com profile dados, enquanto onError recebe um Erro de autenticação objeto com informações sobre o erro.aula particular ProfileOuvinte implementa APIListener{ /*getProfile completado com sucesso. */ @Sobrepor
public void onSuccess(resposta do pacote) {}
/* Ocorreu um erro durante a tentativa de obter o profissionalfile. */ @Sobrepor
public void onError (AuthError ae) {
}
} - Implement no Sucesso para o seu AutorizarListener.
In emSucesso, chamar AmazonAuthorizationManager.getProfile para recuperar o cliente profissionalfile. getProfile, assim como autorizar, usa uma interface de ouvinte assíncrona. Para getProfile, essa interface é APIListener, nãoAuthorizationListener.
/* A autorização foi concluída com sucesso. */ @Sobrepor
public void onSuccess(resposta do pacote) {
mAuthManager.getProfile(novo PrófileOuvinte());} - Implement emSucesso para seu PrófileOuvinte.
onSuccesshas duas tarefas principais: recuperar o profissionalfile dados do pacote de resposta e para passar os dados para a UI. atualizarProfileDados uma função hipotética que seu aplicativo poderia implementar para exibir profile detalhes. setLoggedInState, outra função hipotética, indicaria que um usuário está logado e daria a ele um meio de Sair.
Para recuperar o profissionalfile dados do Bundle, usamos nomes armazenados pelo Constantes de autorização aula. O no Sucesso pacote contém o profissionalfile dados em um BUNDLE_KEY.PROFILE pacote.
Dentro do profissionalfile pacote, os dados do escopo são indexados em PRÓFILE_KEY.NOME, PROFILE_KEY.EMAIL, PROFILE_KEY.USER_ID, e PRÓFILE_KEY.POSTAL_CODE. PRÓFILE_KEY.POSTAL_CODE só está incluído se você solicitar o código postal escopo.@ Override
public void onSuccess(resposta do pacote) {
// Recuperamos os dados que precisamos do Bundle Bundle profilePacote = resposta.getBundle(
AuthzConstants.BUNDLE_KEY.PROFILE.val);
Nome da string = profilePacote.getString(
AutzConstants.PROFILE_KEY.NOME.val);
String e-mail = profilePacote.getString(
AutzConstants.PROFILE_KEY.EMAIL.val);
String conta = profilePacote.getString(
AutzConstants.PROFILE_KEY.USER_ID.val);
String CEP = profilePacote.getString(
AutzConstants.PROFILE_KEY.POSTAL_CODE.val);
runOnUiThread(new Runnable() { @Override
public void run () {
atualizarProfileDados(nome, email, conta, CEP);
}
});
} - Implement emErro para o seu PrófileOuvinte.
emErro inclui um Erro de autenticação objeto contendo detalhes sobre o erro./* Ocorreu um erro durante a tentativa de obter o profissionalfile. */ @Sobrepor
public void onError (AuthError ae) {
/* Tente novamente ou informe o usuário sobre o erro */
} - Implement onErrorfor seu AutorizarListener.
/* Ocorreu um erro durante a tentativa de autorizar o aplicativo.
*/
@ Override
public void onError (AuthError ae) {
/ * Informar o usuário do erro * /
} - Implement onCancelfor seu AutorizarListener.
Porque o processo de autorização apresenta uma tela de login (e possivelmente uma tela de consentimento) para o usuário em um web navegador (ou um webview), o usuário terá a oportunidade de cancelar o login ou sair do web página. Se eles cancelarem explicitamente o processo de login, onCancelar é chamado. Se onCancelis chamado, você desejará redefinir sua IU./* A autorização foi cancelada antes que pudesse ser concluída. */
@ Override
public void onCancel(causa do pacote) {
/* redefine a UI para um estado pronto para login */
}Observação: Se o usuário sair da tela de login do navegador ou web view e voltar para seu aplicativo, o SDK não detectará que o login não foi concluído. Se você detectar atividade do usuário em seu aplicativo antes da conclusão do login, poderá presumir que ele saiu do navegador e reagirá de acordo.
Verifique o login do usuário na inicialização
Se um usuário fizer login no seu aplicativo, fechá-lo e reiniciá-lo mais tarde, o aplicativo ainda estará autorizado a recuperar dados. O usuário não é desconectado automaticamente. Na inicialização, você pode mostrar o usuário como logado se seu aplicativo ainda estiver autorizado. Esta seção explica como usar getToken para ver se o aplicativo ainda está autorizado.
- Criar um TokenListener.
TokenListener implementa o APIListener interface e processará o resultado da chamada getToken. APIListener contém dois métodos: no Sucesso e emErro (não suporta onCancelar porque não há como cancelar um obterToken ligar). no Sucesso recebe um objeto Bundle com dados de token, enquanto emErro recebe um Erro de autenticação objeto com informações sobre o erro.classe privada TokenListener implementa APIListener{ /* getToken concluído com sucesso. */ @Sobrepor
public void onSuccess(resposta do pacote) {
}
/* Ocorreu um erro durante a tentativa de obter o token. */ @Sobrepor
public void onError (AuthError ae) {
}
} - No emIniciar método da sua Activity, chame obterToken para ver se o aplicativo ainda está autorizado.
obterToken recupera o token de acesso bruto que o AmazonAutorizationManager usa para acessar um cliente profissionalfile. Se o valor do token não for nulo, o aplicativo ainda estará autorizado e uma chamada para getProfile deve ter sucesso. getToken requer os mesmos escopos solicitados em sua chamada de autorização.
getTokensupports chamadas assíncronas da mesma maneira que getProfile, portanto, você não precisa bloquear o thread de UI ou criar seu próprio thread de trabalho. Para chamar getToken de forma assíncrona, passe um objeto que suporte o APIListener interface como parâmetro final.@ Override
void protegido onStart(){
super.onStart
();mAuthManager.getToken(nova String []{“profile","Código postal"},
novo
TokenListener());
} - Implement no Sucesso para o seu TokenListener.
onSuccesshas duas tarefas: recuperar o token do Bundle e, se o token for válido, chamar getProfile.
Para recuperar os dados do token do Bundle, usamos nomes armazenados pelo Constantes de autorização aula. O no Sucesso bundle contém os dados do token em um valor BUNDLE_KEY.TOKEN. Se esse valor não for nulo, este example chamadas getProfile usando o mesmo ouvinte que você declarou na seção anterior (veja as etapas 7 e 8)./* getToken concluído com sucesso. */
@ Override
public void onSuccess(resposta do pacote) {
String final authzToken =
resposta.getString(AuthzConstants.BUNDLE_KEY.TOKEN.val);
if (!TextUtils.isEmpty(authzToken))
{
// Recupera o profissionalfile dados
mAuthManager.getProfile(novo PrófileOuvinte());
}
}
O método clearAuthorizationState limpará os dados de autorização do usuário do armazenamento de dados local AmazonAuthorizationManager. Um usuário terá que fazer login novamente para que o aplicativo recupere profile dados. Use este método para desconectar um usuário ou para solucionar problemas de login no aplicativo.
- Implementar um logout
Quando um usuário faz o login com sucesso, você deve fornecer um mecanismo de logout para que ele possa limpar seu profile dados e escopos previamente autorizados. Seu mecanismo pode ser um hiperlink ou um item de menu. Para este exampvamos criar um ao clicar método para um botão. - No seu gerenciador de logout, ligue clearAutorizationState. clearAutorizationState removerá os dados de autorização de um usuário (tokens de acesso, profile) da loja local. clearAuthorizationStatetakes nenhum parâmetro, exceto um APIListener para retornar o sucesso ou
- Declarar um anônimo APIListener.
Classes anônimas são uma alternativa útil para declarar uma nova classe para implementação APIListener. Ver Manuseie o botão de login e obtenha o Profile Dados (pág. 17) para um exampletreiro declara classes de ouvinte. - Implement no Sucesso dentro do APIListener
Quando clearAutorizationState for bem-sucedido, você deve atualizar sua UI para remover referências ao usuário e fornecer um mecanismo de login que os usuários possam usar para efetuar login novamente. - Implement emErro dentro do APIListener.
If clearAuthorizationStatereturns um erro, você pode permitir que o usuário tente fazer logout novamente.@ Override
protegido void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
/ * Declarações onCreate anteriores omitidas * /
// Encontre o botão com o ID de logout e configure um manipulador de cliques
mLogoutButton = (Botão) localizarViewById(R.id.logout);
mLogoutButton.setOnClickListener(new OnClickListener() {
@ Override
public void onClick (View v) {
mAuthManager.clearAuthorizationState(novo
APIListener() {
@ Override
public void onSuccess(resultados do pacote) {
// Definir estado desconectado na IU
}
@ Override
public void onError (AuthError authError) {
// Registrar o erro
}
});
}
});
}
Alguns AmazonAutorizationManager métodos retornam um objeto Future. Isso permite que você chame o método de forma síncrona em vez de passar um ouvinte como parâmetro. Se você usar um objeto Future, não deverá usá-lo em um thread de UI. Se você bloquear um thread de UI por mais de cinco segundos, receberá um prompt ANR (Application Not Responding). Em Manipular o botão de login e obter o Profile Dados exampeu, o no Sucesso método para AutorizeOuvinte é chamado com um thread de trabalho criado por AmazonAutorizationManager. Isso significa que é seguro usar esse thread para chamar getPirofile sincronicamente. Para fazer uma chamada síncrona, atribua o valor de retorno de getPirofile para um objeto Future e chame o método giet nesse objeto para esperar até que o método seja concluído.
Fuiture.get retorna um objeto Bundle que contém um FUTURE_TYPE valor de SUCESSO, ERRO, or CANCELAR. Se o método for bem-sucedido, o mesmo pacote conterá PROFILE_valores KEY para o profissionalfile dados. Para exampem:
/ * A autorização foi concluída com sucesso. * / @ Override public void onSuccess(resposta do pacote) { Futuro<Bundle> futuro = mAuthManager.getProfile(nulo); Bundle result = future.get(); // Descubra se a chamada foi bem-sucedida e recupere o profile Objeto future_type = resultado.get(AuthzConstants.BUNDLE_KEY.FUTURE.val); if (future_type == AuthzConstants.FUTURE_TYPE.SUCCESS) { Nome da string = resultado.getString( AuthzConstants.PROFILE_KEY.NOME.val); String email = result.getString( AuthzConstants.PROFILE_KEY.EMAIL.val); String conta = resultado.getString( AuthzConstants.PROFILE_KEY.USER_ID.val); String código postal = resultado.getString( AuthzConstants.PROFILE_KEY.POSTAL_CODE.val); runOnUiThread(new Runnable() { @Override public void run() { updateProfileDados (nome, e-mail, conta, CEP); } }); } senão if (future_type == AuthzConstants.FUTURE_TYPE.ERROR) { // Obtém objeto de erro AuthError authError = AuthError.extractError(resultado); /* Use authError para diagnosticar o erro */ } |
Faça login com o Guia de primeiros passos da Amazon para Android – Baixar [otimizado]
Faça login com o Guia de primeiros passos da Amazon para Android – Download