Iniciar sesión con la Guía de inicio de Amazon para Android
Iniciar sesión con Amazon: Guía de inicio para Android
Copyright © 2016 Amazon.com, Inc. o sus afiliados. Reservados todos los derechos. Amazon y el logotipo de Amazon son marcas comerciales de Amazon.com, Inc. o sus filiales. Todas las demás marcas comerciales que no son propiedad de Amazon son propiedad de sus respectivos dueños.
Primeros pasos para Android
En esta guía, le mostraremos cómo agregar Inicio de sesión con Amazon a su aplicación de Android. Después de completar esta guía, debe tener un botón Iniciar sesión con Amazon que funcione en su aplicación para permitir que los usuarios inicien sesión con sus credenciales de Amazon.
Instalación de las herramientas para desarrolladores de Android
El inicio de sesión con Amazon SDK para Android lo ayudará a agregar el inicio de sesión con Amazon a su aplicación de Android. Le recomendamos que utilice el SDK de inicio de sesión con Amazon para Android de developer.amazon.com con Android Studio. Sin embargo, también puede utilizar el complemento Eclipse con ADT. Para conocer los pasos sobre cómo instalar Android Studio y cómo configurar el SDK de Android, consulte Obtenga el SDK de Android en developer.android.com.
Cuando esté instalado el SDK de Android, busque el Administrador de SDK aplicación en su instalación de Android. Para desarrollar para iniciar sesión con Amazon, debe utilizar SDK Manager para instalar la plataforma SDK para Android 2.2 o superior (API versión 8). Ver Agregar paquetes de SDK en developer.android.com para obtener más información sobre el uso de SDK
Después de instalar el SDK, configure un dispositivo virtual Android (AVD) para ejecutar sus aplicaciones. Ver Gerente Dispositivos virtuales en developer.android.com para obtener instrucciones sobre cómo configurar un dispositivo virtual.
Cuando su entorno de desarrollo está configurado, puede Instale el inicio de sesión con el SDK de Amazon para Android or Ejecutar la Sampla aplicación, como se describe abajo.
Instale el inicio de sesión con el SDK de Amazon para Android
El inicio de sesión con Amazon SDK para Android viene en dos paquetes. El primero contiene la biblioteca de Android y la documentación de respaldo. El segundo contiene comoample aplicación que permite a un usuario iniciar sesión y muestra su profesionalfile datos.
Si aún no ha instalado el SDK de Android o las herramientas de desarrollo de Android, consulte la Instalación las herramientas de desarrollo de Android Sección anterior.
- Descargar cremallera y extraer el files en un directorio de su disco duro.
Deberías ver un doc y un biblioteca subdirectorio. - Abierto doc / index.html a view la API de inicio de sesión con Amazon Android
- Ver Instale el inicio de sesión con la biblioteca de Amazon, para obtener instrucciones sobre cómo agregar la biblioteca y la documentación a un dispositivo Android
Cuando se instala Iniciar sesión con Amazon SDK para Android, puede Cree un nuevo inicio de sesión con Amazon Proyecto, después Registrarse con Iniciar sesión con Amazon .
Ejecutar la Sampla aplicación
Para ejecutar el sample aplicación, importe el samparchivo en un espacio de trabajo de AndroidStudio (si está usando Eclipse, también debe agregar un almacén de claves de depuración personalizado al espacio de trabajo. Agregar la depuración personalizada Almacén de claves en Eclipse sección siguiente). La clave de API que el sampLos usos de la aplicación le requieren que el espacio de trabajo use el almacén de claves que se envía con el sample. Si el almacén de claves personalizado no está instalado, los usuarios no podrán iniciar sesión con el sample. El almacén de claves se recogerá automáticamente si está utilizando AndroidStudio.
- Descargar SampleLoginWithAmazonAppForAndroid-src.zip y extraer el files a un directorio en su disco duro
- Inicie Android Studio y seleccione Abra un proyecto existente de Android Studio
- Navega hasta el SampleLoginWithAmazonApp directorio obtenido después de extraer el zip descargado file al paso
- Desde Construir menú, haga clic Hacer proyectoy espere a que el proyecto
- Desde Correr menú, haga clic Correr y luego haga clic en el SampleLoginWithAmazonApp.
- Seleccione el emulador o dispositivo Android conectado y haga clic en Correr.
Agregar el almacén de claves de depuración personalizadas en Eclipse
Si está utilizando Eclipse, siga las instrucciones a continuación para agregar el almacén de claves de depuración personalizado:
- En el Preferencias diálogo, seleccionar Androide y Construir.
- Junto a Costumbre Almacén de claves de depuración, haga clic Navegar.
- Navega a la sample directorio de la aplicación y seleccione 3p. Tienda de llavesy luego haga clic en OK.
Registrarse con Iniciar sesión con Amazon
Antes de poder utilizar Iniciar sesión con Amazon en un websitio o en una aplicación móvil, debe registrar una aplicación con Login with Amazon. Su aplicación Login with Amazon es el registro que contiene información básica sobre su negocio e información sobre cada uno de sus productos. webSitio o aplicación móvil que cree que admita Iniciar sesión con Amazon. Esta información comercial se muestra a los usuarios cada vez que usan Iniciar sesión con Amazon en su websitio o aplicación móvil. Los usuarios verán el nombre de su aplicación, su logotipo y un enlace a su política de privacidad. Estos pasos demuestran cómo registrar un inicio de sesión con la aplicación de Amazon y agregar una aplicación de Android a esa cuenta.
Consulte los siguientes temas:
- Registre su inicio de sesión con la aplicación de Amazon
- Registre su aplicación de Android
- Agregar una aplicación de Android para Amazon Appstore
- Agregar una aplicación de Android sin la tienda de aplicaciones
- Firmas de aplicaciones de Android y claves de API
- Determinación de la firma de una aplicación de Android
- Recuperar una clave de API de Android
Registre su inicio de sesión con la aplicación de Amazon
- Ir a https://login.amazon.com.
- Si ya se registró para iniciar sesión con Amazon antes, haga clic en Consola de aplicaciones. De lo contrario, haga clic en Inscribirse. Se le redirigirá a Seller Central, que gestiona el registro de la aplicación para iniciar sesión con Si es la primera vez que utiliza Seller Central, se le pedirá que configure una cuenta de Seller Central.
- Hacer clic Registrar nueva aplicación. El Registre su aplicación aparecerá el formulario:
a. En el Registre su aplicación formulario, ingrese un Nombre y un Descripción para su aplicación.
El Nombre es el nombre que se muestra en la pantalla de consentimiento cuando los usuarios aceptan compartir información con su aplicación. Este nombre se aplica a Android, iOS y webversiones del sitio de su aplicación.
b. Introduzca una Aviso de privacidad URL para su aplicación
El Aviso de privacidad URL es la ubicación de la política de privacidad de su empresa o aplicación (por ejemplo,ampel, http://www.example.com/privacy.html). Este enlace se muestra a los usuarios en la pantalla de consentimiento.
c. Si desea agregar un Imagen del logotipo Para su aplicación, haga clic en Navegar y localice la imagen aplicable.
Este logotipo se muestra en la pantalla de inicio de sesión y consentimiento para representar su empresa o websitio. El logotipo se reducirá a 50 píxeles de altura si mide más de 50 píxeles; no hay limitación en el ancho del logo - Hacer clic Ahorrar. TuyoampEl registro debería verse similar a esto:
Una vez guardada la configuración básica de la aplicación, puede agregar configuraciones para aplicaciones específicas. websitios y aplicaciones móviles que utilizarán este inicio de sesión con cuenta de Amazon.
Registre su aplicación de Android
Para registrar una aplicación de Android, tiene la opción de registrar una aplicación a través de Amazon Appstore (Agregar una aplicación de Android para Amazon Appstore, pag. 8) o directamente con Iniciar sesión con Amazon (Agregar un Android Aplicación sin tienda de aplicaciones, pag. 9). Cuando su aplicación esté registrada, tendrá acceso a una clave API que le permitirá acceder al servicio de autorización de inicio de sesión con Amazon.
Nota: Si planea utilizar Amazon Device Messaging dentro de su aplicación de Android, comuníquese con lwa- soporte@amazon.com con:
- La dirección de correo electrónico de la cuenta de Amazon que utilizó para registrarse para Iniciar sesión con Amazon.
- La dirección de correo electrónico de la cuenta de Amazon que usó para registrarse en Amazon Appstore (si es diferente).
- El nombre de su cuenta de Seller Central. (En Seller Central, haga clic en Configuración> Información de cuenta> Información del vendedor, y utiliza el Nombre para mostrar).
- El nombre que figura en su cuenta de desarrollador de Amazon Appstore. (En el sitio de Distribución de aplicaciones móviles, haga clic en Ajustes > Compañía Profile y utiliza el Nombre del desarrollador o nombre de la empresa).
Agregar una aplicación de Android para Amazon Appstore
Los siguientes pasos agregarán una aplicación de Amazon Appstore a su inicio de sesión con cuenta de Amazon:
- Desde la pantalla de la aplicación, haga clic en Configuración de Android. Si ya tiene una aplicación de Android registrada, busque el Agregar clave de API botón en el Configuración de Android
El Detalles de la aplicación de Android aparecerá el formulario: - Seleccionar Sí en respuesta a la pregunta "¿Esta aplicación se distribuye a través de Amazon Appstore?"
- Entrar en el Etiqueta de su aplicación de Android. Este no tiene que ser el nombre oficial de su aplicación. Simplemente identifica esta aplicación de Android en particular entre las aplicaciones y websitios registrados en su aplicación Iniciar sesión con Amazon.
- Añade tu ID de Amazon Appstore.
- Si autofirmó su aplicación, agregue información de autofirma. Esto le permitirá obtener una clave API durante el desarrollo sin usar la Appstore directamente:
a. Si su aplicación no se está firmando a través de Amazon Appstore, seleccione Sí en respuesta a la pregunta "¿Esta aplicación está autofirmada?"
El Detalles de la aplicación de Android el formulario se expandirá:
b. Ingresa tu Nombre del paquete.
Debe coincidir con el nombre del paquete de su proyecto de Android. Para determinar el nombre del paquete de su proyecto de Android, abra el proyecto en la herramienta de desarrollo de Android que elija.
Abierto AndroidManifest.XML en el Explorador de paquetes y seleccione el Manifiesto pestaña. La primera entrada es el nombre del paquete.
c. Entrar en la aplicación Firma.
Este es un valor hash SHA-256 que se usa para verificar su aplicación. La firma debe tener la forma de 32 pares hexadecimales separados por dos puntos (por ej.ampen: 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 Firmas de aplicaciones de Android y claves de API para conocer los pasos que puede utilizar para extraer la firma de su proyecto. - Hacer clic Ahorrar.
Si diferentes versiones de su aplicación tienen diferentes firmas o nombres de paquetes, como para una o más versiones de prueba y una versión de producción, cada versión requiere su propia clave API. Desde el Configuración de Android de su aplicación, haga clic en el Agregar clave de API para crear claves adicionales para su aplicación (una por versión).
Firmas de aplicaciones de Android y claves de API
La firma de la aplicación es un valor hash SHA-256 que se aplica a cada aplicación de Android cuando se crea. Amazon usa la firma de la aplicación para construir su clave API. La clave API permite que los servicios de Amazon reconozcan su aplicación. Si utiliza Amazon Appstore para firmar su aplicación, la clave API se proporciona automáticamente. Si no está utilizando Amazon Appstore, deberá administrar su clave API manualmente.
Las firmas de aplicaciones se almacenan en un almacén de claves. Generalmente, para las aplicaciones de Android hay un almacén de claves de depuración y un almacén de claves de lanzamiento. El almacén de claves de depuración lo crea el complemento de herramientas de desarrollo de Android para Eclipse y se utiliza de forma predeterminada. Puede encontrar la ubicación del almacén de claves de depuración en Eclipse haciendo clic en Ventanay luego seleccionando Preferencias> Android> Construir. Desde esa pantalla también puede agregar su propio almacén de claves de depuración. Para Android Studio, desde Construir menú, seleccionar Editar tipos de compilación, luego ve a la Firma pestaña, y localice el almacén de claves de depuración en el Almacenar File campo.
Normalmente, se crea un almacén de claves de versión cuando exporta su aplicación de Android para crear un APK firmado file.
A través del proceso de exportación, si está creando un nuevo almacén de claves de versión, seleccionará su ubicación. Por
por defecto, se colocará en la misma ubicación que su almacén de claves de depuración predeterminado.
Si ha registrado su aplicación con la firma de depuración durante el desarrollo, tendrá que agregar una nueva configuración de Android a su aplicación cuando esté listo para lanzar la aplicación. La nueva configuración de la aplicación debe utilizar la firma del almacén de claves de la versión.
Ver Firma de sus aplicaciones en developer.android.com para obtener más información.
Determinar la firma de la aplicación de Android
- Si tiene un APK firmado file:
a. Descomprime el APK file y extraer CERT.RSA. (Puede cambiar el nombre de la extensión APK a ZIP si es necesario).
b. Desde la línea de comando, ejecute:keytool-printcert-file CERT.RSA Herramientas clave Ubicado en el papelera directorio de su instalación de Java.
- Si tienes un almacén de claves file:
a. Desde la línea de comando, ejecute:keytool -list -v -alias -keystorefilenombre> Herramienta de claves se encuentra en el directorio bin de su instalación de Java. El alias es el nombre de la clave utilizada para firmar la aplicación.
b. Ingrese la contraseña para la clave y presione Ingresar. - Bajo Certificado de huellas dactilares, Copiar el SHA256 valor.
Recuperar la clave de API de Android
Cuando haya registrado una configuración de Android y haya proporcionado una firma de aplicación, puede recuperar la clave API de la página de registro para su aplicación Iniciar sesión con Amazon. Deberá colocar esa clave API en un file en su proyecto de Android. Hasta que lo haga, la aplicación no estará autorizada para comunicarse con el servicio de autorización de inicio de sesión con Amazon.
- Ir a https://login.amazon.com.
- Hacer clic Consola de aplicaciones.
- En el Aplicaciones cuadro a la izquierda, seleccione su
- Busque su aplicación de Android en la Configuración de Android (Si aún no ha registrado una aplicación de Android, consulte Agregar una aplicación de Android para Amazon Appstore).
- Hacer clic Generar valor clave de API. Una ventana emergente mostrará su clave API. Para copiar la clave, haga clic en Seleccionar todo para seleccionar todo
Nota: El valor de la clave de API se basa, en parte, en el momento en que se genera. Por lo tanto, los valores clave de API posteriores que genere pueden diferir del original. Puede utilizar cualquiera de estos valores clave de API en su aplicación, ya que todos son válidos. - Ver Agregue su clave API a su proyecto para obtener instrucciones sobre cómo agregar la clave API a su Android
Creación de un inicio de sesión con el proyecto de Amazon
En esta sección, aprenderá cómo crear un nuevo proyecto de Android para Iniciar sesión con Amazon, configurar el proyecto y agregar código al proyecto para iniciar sesión como usuario con Iniciar sesión con Amazon. Describiremos los pasos para Android Studio, pero puede aplicar pasos análogos a cualquier IDE o herramienta de desarrollo de Android de su elección.
Consulte los siguientes temas:
- Cree un nuevo inicio de sesión con Amazon Project
- Instale el inicio de sesión con la biblioteca de Amazon
- Habilite la asistencia de contenido para el inicio de sesión con la biblioteca de Amazon
- Establecer permisos de red para su aplicación
- Agregue su clave API a su proyecto
- Quita la Sample App Almacén de claves de depuración personalizado
- Manejar cambios de configuración para su actividad
- Agregue una actividad de autorización a su proyecto
- Agregue un inicio de sesión con el botón de Amazon a su aplicación
- Maneje el botón de inicio de sesión y obtenga Profile Datos
- Compruebe el inicio de sesión del usuario al iniciar
- Borrar el estado de autorización y cerrar la sesión de un usuario
- Llamar a los métodos de Amazon Authorization Manager de forma sincrónica
Cree un nuevo inicio de sesión con Amazon Project
Si aún no tiene un proyecto de aplicación para usar Iniciar sesión con Amazon, siga las instrucciones a continuación para crear uno. Si tiene una aplicación existente, pase a Instale el inicio de sesión con la biblioteca de Amazon .
- Lanzamiento Herramienta de desarrollo de Android.
- Desde File menú, seleccionar Nuevo y Proyecto.
- Ingrese una Nombre de la aplicación y nombre de empresa Para tu
- Entrar en el Aplicación y nombre de la empresa correspondiente al nombre del paquete que eligió cuando registró su aplicación con Iniciar sesión con Amazon.
Si aún no ha registrado su aplicación, elija una Nombre del paquete y luego siga las instrucciones en el Registrarse con Iniciar sesión con Amazon sección después de crear su proyecto. Si el nombre del paquete de su aplicación no coincide con el nombre del paquete registrado, sus llamadas de inicio de sesión con Amazon no se realizarán correctamente. - Seleccione una SDK mínimo requerido de API 8: Android 2 (Froyo) o superior, y haga clic en Próximo.
- Seleccione el tipo de actividad que desea crear y haga clic en Próximo.
- Complete los detalles relevantes y haga clic en Finalizar.
Ahora tendrá un nuevo proyecto en su espacio de trabajo que puede usar para llamar a Iniciar sesión con Amazon.
Instale el inicio de sesión con la biblioteca de Amazon
Si aún no ha descargado el inicio de sesión con el SDK de Amazon para Android, consulte Instale el inicio de sesión con Amazon SDK para Android (pág. 4).
- Con su proyecto abierto en Android Developer Tools, en Explorador de proyectos, haga clic derecho en su Proyecto.
- Si una carpeta llamada bibliotecas no está ya presente, crea
- Copiar el iniciar sesión con amazon-sdk.jar file desde File Sistemay luego péguelo en el bibliotecas directorio debajo de su proyecto / aplicación.
- Clic derecho iniciar sesión con amazon-sdk.jar, y comprobar el Agregar como biblioteca
Habilite la asistencia de contenido para el inicio de sesión con la biblioteca de Amazon en Eclipse
Para habilitar el soporte de asistencia de contenido de Eclipse en un proyecto de Android, se requiere .propiedades file. Para obtener más información sobre la asistencia de contenido, consulte Asistencia de contenido / código onhelp.eclipse.org.
Para habilitar el soporte de asistencia de contenido de Eclipse en un proyecto de Android, se requiere .propiedades file. Para obtener más información sobre la asistencia de contenido, consulte Asistencia de contenido / código onhelp.eclipse.org.
- In Explorador de Windows, navegue hasta el documentos carpeta para Iniciar sesión con Amazon SDK para Android y copie la carpeta en el
- Con su proyecto abierto, vaya a Explorador de paquetes y seleccione el bibliotecas Hacer clic Editar en el menú principal y seleccione Pasta. Ahora deberías tener un libs \ docs directorio.
- Seleccione el bibliotecas Hacer clic File en el menú principal y seleccione Nuevo yFile.
- En el Nuevo File diálogo, entrar iniciar sesión con amazon-sdk.jar.properties y haga clic Finalizar.
- Eclipse debería abrirse iniciar sesión con amazon-sdk.jar.properties en el editor de texto. En el editor de texto, agregue la siguiente línea al file:
doc = docs - Desde File menú, haga clic Ahorrar.
- Es posible que deba reiniciar Eclipse para que los cambios surtan efecto
Establecer permisos de red para su aplicación
Para que su aplicación utilice Iniciar sesión con Amazon, debe acceder a Internet y acceder a la información del estado de la red. Su aplicación debe hacer valer estos permisos en su manifiesto de Android, si aún no lo ha hecho.
NOTA: Los pasos del procedimiento a continuación son específicos para agregar los permisos en Eclipse. Si está utilizando Android Studio o un IDE diferente, puede omitir todos los pasos enumerados a continuación. En su lugar, copie las líneas de código que se muestran debajo de la captura de pantalla y péguelas en el AndroidManifest.xml file, fuera del bloque de aplicaciones.
- In Paquete Explorador, haga doble clic xml.
- En el Permisos pestaña, haga clic Agregar.
- Seleccionar Usa permiso y haga clic OK.
- A la derecha de Permisos, encuentra el Atributos para permisos de usos
- En el Nombre caja, enter permiso. INTERNET o selecciónelo del menú desplegable.
- En el Permisos pestaña, haga clic Agregar
- Seleccionar Usa permiso y haga clic OK.
- En el Nombre caja, enter permiso.ACCESS_NETWORK_STATE o selecciónelo del menú desplegable
- Desde File menú, haga clic Ahorrar.
Sus permisos de manifiesto ahora deberían tener los siguientes valores:
En el AndroidManifest.xml pestaña, ahora debería ver estas entradas bajo el elemento de manifiesto:
Agregue su clave API a su proyecto
Cuando registra su aplicación de Android con Iniciar sesión con Amazon, se le asigna una clave API. Este es un identificador que el administrador de autorización de Amazon utilizará para identificar su aplicación en el servicio de autorización de inicio de sesión con Amazon. Si está utilizando Amazon Appstore para firmar su aplicación, Appstore le proporcionará la clave API automáticamente. Si no está utilizando Amazon Appstore, Amazon Authorization Manager carga este valor en tiempo de ejecución desde el clave_api.txt file en el activos directorio.
- Si aún no tiene su clave API, siga las instrucciones en Recuperar la clave de API de Android (pág. 11).
- Con su proyecto ADT abierto, desde el File menú, haga clic Nuevo y seleccione Texto sin título File. Ahora debería tener una ventana de edición para un texto file nombrado Sin título 1. Agrega tu clave API al texto
- Desde File menú, haga clic Guardar como.
- En el Guardar como diálogo, seleccione el activos directorio de su proyecto como carpeta principal. Para File nombre, ingresar TXT.
Quita la Sample App Almacén de claves de depuración personalizado
NOTA: Este paso es necesario solo si está utilizando Eclipse; si está utilizando Android Studio, omita esta sección.
Si instaló Iniciar sesión con Amazon para Android sample aplicación en el mismo espacio de trabajo que está utilizando para su aplicación de Android, puede tener un almacén de claves de depuración personalizado configurado para el espacio de trabajo. Debe borrar el almacén de claves de depuración personalizado para poder utilizar su propia clave de API.
- Desde el menú principal, haga clic en Ventana y seleccione Preferencias.
- En el Preferencias diálogo, seleccionar Androide y Construir.
- Limpiar el Costumbre depurar almacén de claves
- Hacer clic OK.
Manejar cambios de configuración para su actividad
Si un usuario cambia la orientación de la pantalla o cambia el estado del teclado del dispositivo mientras está iniciando sesión, se le pedirá que se reinicie la actividad actual. Este reinicio cerrará la pantalla de inicio de sesión inesperadamente. Para evitar esto, debe configurar la actividad que usa el método de autorización para manejar esos cambios de configuración manualmente. Esto evitará un reinicio de la actividad.
- In Paquete Explorador, haga doble clic xml.
- En el Solicitud sección, ubique la actividad que manejará el inicio de sesión con Amazon (por ej.ampel, Actividad principal).
- Agregue el siguiente atributo a la actividad que ubicó en el Paso 2:
android: configChanges = ”teclado | keyboardHidden | orientación” O para API 13 o superior:
android: configChanges = ”teclado | keyboardHidden | orientación | screenSize” - Desde File menú, haga clic Ahorrar
Ahora, cuando ocurre un cambio de orientación del teclado o del dispositivo, Android llamará al onConfigurationChanged método para su actividad. No es necesario implementar esta función a menos que exista un aspecto de estos cambios de configuración que desee manejar para su aplicación.
Cuando el usuario hace clic en el botón Iniciar sesión con Amazon, la API iniciará un web navegador para presentar una página de inicio de sesión y consentimiento al usuario. Para que esta actividad del navegador funcione, debe agregar AuthorizationActivity a su manifiesto.
- In Paquete Explorador, haga doble clic xml.
- En el Solicitud sección, agregue el siguiente código, reemplazando "com.example.app ”con el nombre de su paquete para esta aplicación:
<actividad android:nombre=
"Com.amazon.identity.auth.device.authorization.AuthorizationActivity" android: theme = "@ android: style / Theme.NoDisplay" android: allowTaskReparenting = "true" android: launchMode = "singleTask">
<acción android:nombre=”android.intent.action.VIEW” />
<datos
android: host = ”com.example.app ”android: esquema =” amzn ”/>
tu aplicación. Esta sección brinda los pasos para descargar una imagen oficial de inicio de sesión con Amazon y vincularla con un botón de imagen de Android.
- Agregue un ImageButton estándar a su aplicación.
Para obtener más información sobre los botones de Android y la clase ImageButton, consulte Botones en developer.android.com. - Dale a tu botón una identificación.
En la declaración XML del botón, establezca el atributo android: id en @ + id / login_with_amazon. Por exampen:android: id = ”@ + id / login_with_amazon” - Elija una imagen de botón.
Consulte nuestro Iniciar sesión con Amazon Pautas de estilo para obtener una lista de botones que puede utilizar en su aplicación. Descargue una copia del LWA_Android.zip file. Extraiga una copia de su botón preferido para cada densidad de pantalla que admita su aplicación (xxhdpi, xhdpi, hdpi, mdpi o tvdpi). Para obtener más información sobre cómo admitir varias densidades de pantalla en Android, consulte Diseños alternativos en el tema "Compatibilidad con varias pantallas" endeveloper.android.com. - Copie la imagen del botón correspondiente files a tu proyecto.
Para cada densidad de pantalla que admita (xhdpi, hdpi, mdpi o ldpi), copie el botón descargado en la res / dibujable directorio para esa densidad de pantalla. - Declare la imagen del botón.
En la declaración XML del botón, establezca el atributo android: src en el nombre del botón que ha elegido. Por exampen:android: src = ”@ drawable / btnlwa_gold_loginwithamazon.png” 6. Cargue su aplicación y verifique que el botón ahora tenga una imagen de Iniciar sesión con Amazon. Debe verificar que el botón se muestre correctamente para cada densidad de pantalla que admita.
Esta sección explica cómo llamar a Authorize y getPro.file API para iniciar sesión en un usuario y recuperar su profesionalfile datos. Esto incluye la creación de un oyente onClick para su botón Iniciar sesión con Amazon en el método onCreate de su aplicación.
- Agregue Login with Amazon a su proyecto de Android. Ver Instale el inicio de sesión con la biblioteca de Amazon .
- Importe el inicio de sesión con la API de Amazon a su fuente
Para importar el inicio de sesión con la API de Amazon, agregue las siguientes declaraciones de importación a su fuente file:import com.amazon.identity.auth.device.AuthError; importar
com.amazon.identity.auth.device.authorization.api.
AmazonAuthorizationManager; importar
com.amazon.identity.auth.device.authorization.api. AuthorizationListener; importar com.amazon.identity.auth.device.authorization.api.AuthzConstants; - Inicializar Administrador de autorización de Amazon.
Deberá declarar un Administrador de autorización de Amazon variable y cree una nueva instancia de la clase. La creación de una nueva instancia solo requiere el contexto de la aplicación actual y un paquete vacío. El mejor lugar para inicializar Administrador de autorización de Amazon esta en el enCrear método de su actividad. Por exampen: - Cree un AuthorizeLiistener.
Autorizar oyente implementa la interfaz AuthorizatioinListener y procesará el resultado de la Authorizecall. Contiene tres métodos: oinSuccess, enError, y onCanceil. Cada método recibe un paquete o un Error de autenticación objeto.la clase privada AuthorizeListener implementa AuthorizationListener {
/ * La autorización se completó con éxito. * /
@Anular
public void onSuccess (respuesta del paquete) {
}
/ * Hubo un error durante el intento de autorizar la aplicación.
*/
@Anular
public void onError (AuthError ae) {
}
/ * La autorización se canceló antes de que pudiera completarse. * /
@Anular
public void onCancel (causa del paquete) {
}
} - Llamar AmazonAuthorizationManager.autorizar.
En el al hacer clic controlador para su botón Iniciar sesión con Amazon, llame a autorizar para solicitar al usuario que inicie sesión y autorice su aplicación.
Este método se encarga de autorizar al cliente de una de las siguientes formas:- Cambia al navegador del sistema y permite al cliente iniciar sesión y dar su consentimiento a la solicitud
- Cambia a web view en un contexto seguro, para permitir que el cliente inicie sesión y dé su consentimiento a la solicitud
Este contexto seguro para el n. ° 2 está actualmente disponible como la aplicación Amazon Shopping en dispositivos Android. Los dispositivos creados por Amazon que ejecutan Fire OS (por ej.ample Kindle Fire, Fire Phone y Fire TV) siempre use esta opción incluso si no hay una aplicación de Amazon Shopping en el dispositivo. Debido a esto, si el cliente ya inició sesión en la aplicación Amazon Shopping, esta API omitirá la página de inicio de sesión, lo que generará una Inicio de sesión único experiencia para el cliente.
Cuando su aplicación está autorizada, está autorizada para uno o más conjuntos de datos conocidos como alcances. El primer parámetro es una serie de ámbitos que abarcan los datos del usuario que solicita a Login with Amazon. La primera vez que un usuario inicia sesión en su aplicación, se le presentará una lista de los datos que está solicitando y se le pedirá su aprobación. El inicio de sesión con Amazon actualmente admite tres ámbitos: profile, que contiene el nombre del usuario, la dirección de correo electrónico y la identificación de la cuenta de Amazon; profile: user_id, que contiene solo la identificación de la cuenta de Amazon; y código postal, que contiene el código postal / postal del usuario.
La mejor forma de llamar a Authorize es de forma asincrónica, por lo que no tiene que bloquear el subproceso de la interfaz de usuario o crear un subproceso de trabajo propio. Llamar autorizar asincrónicamente, pasar un objeto que admita el AutorizaciónInterfaz de escucha como último parámetro:privado AmazonAuthorizationManager mAuthManager; @Anular
void protegido onCreate(Paquete estadoInstanciaGuardado) {
super.onCreate (SavedInstanceState);
mAuthManager = nuevo AmazonAuthorizationManager (esto, Bundle.EMPTY);// Encuentra el botón con el ID de login_with_amazon
// y configurar un controlador de clics
mLoginButton = (Botón) buscarViewById (R.id.login_with_amazon);
mLoginButton.setOnClickListener (nuevo OnClickListener () {
@Anular
public void onClick (View v) {
mAuthManager.authorize (
nueva cadena [] {“profile","código postal"},
Bundle.EMPTY, nuevo AuthorizeListener ());
}
});
} - Crear un ProfileOyente.
ProfileOyente es nuestro nombre para una clase que implementa el APIListener interfaz, y procesará el resultado de la obtener profile llamar. APIListener contiene dos métodos: sobre el éxito y onError (no admite al cancelar porque no hay forma de cancelar un obtener profile llamada). sobre el éxito recibe un objeto Bundle con profile datos, mientras onError recibe un Error de autenticación objeto con información sobre el error.clase privada ProfileListener implementa APIListener { /* obtener profile Completado satisfactoriamente. * / @ Anular
public void onSuccess (respuesta del paquete) {}
/ * Hubo un error durante el intento de obtener el profile. * / @ Anular
public void onError (AuthError ae) {
}
} - Implementar sobre el éxito Para tu AutorizarListener.
In sobre el éxito, llamar AmazonAuthorizationManager.getProfile para recuperar el cliente profile. obtener profile, como autorizar, utiliza una interfaz de escucha asincrónica. Para obtener profile, esa interfaz es APIListener, no AuthorizationListener.
/ * La autorización se completó con éxito. * / @ Anular
public void onSuccess (respuesta del paquete) {
mAuthManager.getProfile(nuevo ProfileOyente());} - Implementar en el éxito para su ProfileOyente.
enSuccesshas dos tareas principales: recuperar el profile datos del paquete de respuesta y para pasar los datos a la interfaz de usuario. actualizarProfileDatos una función hipotética que su aplicación podría implementar para mostrar profile detalles. establecerLoggedInState, otra función hipotética, indicaría que un usuario está conectado y le daría un medio de saliendo de tu cuenta.
Para recuperar el profile datos del paquete, utilizamos nombres almacenados por el Constantes de autenticación clase. La sobre el éxito paquete contiene el profile datos en un BUNDLE_KEY.PROFILE manojo.
Dentro del profile paquete, los datos del alcance se indexan en PROFILE_CLAVE.NOMBRE, PROFILE_CORREO.CLLAVE, PROFILE_CLAVE.ID_USUARIO, y PROFILE_LLAVE.CÓDIGO_POSTAL. PROFILE_LLAVE.CÓDIGO_POSTAL solo se incluye si solicita el Código Postal alcance.@Anular
public void onSuccess (respuesta del paquete) {
// Recuperar los datos que necesitamos del Bundle Bundle profilePaquete = response.getBundle (
AuthzConstants.BUNDLE_KEY.PROFILE.val);
Nombre de cadena = profileBundle.getString (
AuthzConstants.PROFILE_CLAVE.NOMBRE.val);
Cadena de correo electrónico = profileBundle.getString (
AuthzConstants.PROFILE_CLAVE.CORREO ELECTRÓNICO.val);
Cuenta de cadena = profileBundle.getString (
AuthzConstants.PROFILE_CLAVE.ID_USUARIO.val);
Cadena de código postal = profileBundle.getString (
AuthzConstants.PROFILE_LLAVE.CÓDIGO_POSTAL.val);
runOnUiThread (new Runnable () {@Override
public void run () {
actualizarProfileDatos (nombre, correo electrónico, cuenta, código postal);
}
});
} - Implementar enError Para tu ProfileOyente.
enError incluye un Error de autenticación objeto que contiene detalles sobre el error./ * Hubo un error durante el intento de obtener el profile. * / @ Anular
public void onError (AuthError ae) {
/ * Reintentar o informar al usuario del error * /
} - Implementar onErrorpara su AutorizarListener.
/ * Hubo un error durante el intento de autorizar la aplicación.
*/
@Anular
public void onError (AuthError ae) {
/ * Informar al usuario del error * /
} - Implementar en Cancelar para su AutorizarListener.
Debido a que el proceso de autorización presenta una pantalla de inicio de sesión (y posiblemente una pantalla de consentimiento) al usuario en un web navegador (o un webview), el usuario tendrá la oportunidad de cancelar el inicio de sesión o navegar fuera del web página. Si cancelan explícitamente el proceso de inicio de sesión, al cancelar se llama. Si enCancelis llamado, querrá restablecer su interfaz de usuario./ * La autorización se canceló antes de que pudiera completarse. * /
@Anular
public void onCancel (causa del paquete) {
/ * restablecer la interfaz de usuario a un estado listo para iniciar sesión * /
}Nota: Si el usuario navega fuera de la pantalla de inicio de sesión en el navegador o web view y vuelve a su aplicación, el SDK no detectará que el inicio de sesión no se completó. Si detecta actividad del usuario en su aplicación antes de que se complete el inicio de sesión, puede asumir que se han alejado del navegador y reaccionar en consecuencia.
Compruebe el inicio de sesión del usuario al iniciar
Si un usuario inicia sesión en su aplicación, la cierra y la reinicia más tarde, la aplicación aún está autorizada para recuperar datos. El usuario no se desconecta automáticamente. Al inicio, puede mostrar que el usuario inició sesión si su aplicación aún está autorizada. Esta sección explica cómo usar getToken para ver si la aplicación aún está autorizada.
- Crear un Escucha de tokens.
Oyente de tokens implementa el APIListener interfaz y procesará el resultado de la llamada getToken. APIListener contiene dos métodos: sobre el éxito y enError (no soporta al cancelar porque no hay forma de cancelar un obtenerToken llamada). sobre el éxito recibe un objeto Bundle con datos de token, mientras enError recibe un Error de autenticación objeto con información sobre el error.TokenListener de clase privada implementa APIListener { / * getToken completado con éxito. * / @ Anular
public void onSuccess (respuesta del paquete) {
}
/ * Hubo un error durante el intento de obtener el token. * / @ Anular
public void onError (AuthError ae) {
}
} - En el en Inicio método de su actividad, llame obtenerToken para ver si la aplicación aún está autorizada.
obtenerToken recupera el token de acceso sin procesar que el Administrador de autorización de Amazon utiliza para acceder a un cliente profesionalfile. Si el valor del token no es nulo, la aplicación aún está autorizada y se realiza una llamada a obtener profile debería tener éxito. obtenerTokenrequiere los mismos alcances que solicitó en su llamada para autorizar.
getTokenapoyos llamadas asincrónicas de la misma manera que getProfile, por lo que no tiene que bloquear el subproceso de la interfaz de usuario o crear un subproceso de trabajo propio. Para llamar a getToken de forma asincrónica, pase un objeto que admita la APIListener interfaz como parámetro final.@Anular
protected void onStart () {
super.onStart
(); mAuthManager.getToken (nueva cadena [] {“profile","código postal"},
nuevo
TokenListener ());
} - Implementar sobre el éxito Para tu Escucha de tokens.
enSuccesshas dos tareas: recuperar el token del paquete y, si el token es válido, llamar obtener profile.
Para recuperar los datos del token del paquete, usamos nombres almacenados por el Constantes de autenticación clase. La sobre el éxito El paquete contiene los datos del token en un valor BUNDLE_KEY.TOKEN. Si ese valor no es nulo, este example llama obtener profile utilizando el mismo oyente que declaró en la sección anterior (consulte los pasos 7 y 8)./ * getToken completado con éxito. * /
@Anular
public void onSuccess (respuesta del paquete) {
cadena final authzToken =
response.getString (AuthzConstants.BUNDLE_KEY.TOKEN.val);
si (! TextUtils.isEmpty (authzToken))
{
// Recupera el profile datos
mAuthManager.getProfile(nuevo ProfileOyente());
}
}
El método clearAuthorizationState borrará los datos de autorización del usuario del almacén de datos local de AmazonAuthorizationManager. Un usuario tendrá que iniciar sesión nuevamente para que la aplicación recupere profile datos. Utilice este método para cerrar la sesión de un usuario o para solucionar problemas de inicio de sesión en la aplicación.
- Implementar un cierre de sesión
Cuando un usuario ha iniciado sesión correctamente, debe proporcionar un mecanismo de cierre de sesión para que pueda borrar sufile datos y alcances previamente autorizados. Su mecanismo puede ser un hipervínculo o un elemento de menú. Para este example crearemos un al hacer clic método para un botón. - En su controlador de cierre de sesión, llame clearAuthorizationState. claroAutorizaciónEstado eliminará los datos de autorización de un usuario (tokens de acceso, profile) de la tienda local. clearAutorizationStatetakes sin parámetros a excepción de un APIListener para devolver el éxito o
- Declarar anónimo APIListener.
Las clases anónimas son una alternativa útil a la declaración de una nueva clase para implementar APIListener. Ver Maneje el botón de inicio de sesión y obtenga Profile Datos (pág.17) para exampdeja eso declara clases de escucha. - Implementar sobre el éxito Dentro de la APIListener
Cuando claroAutorizaciónEstado tiene éxito, debe actualizar su interfaz de usuario para eliminar las referencias al usuario y proporcionar un mecanismo de inicio de sesión que los usuarios puedan usar para iniciar sesión nuevamente. - Implementar enError Dentro de la APIListener.
If borrarAutorizaciónEstadodevoluciones un error, puede permitir que el usuario intente cerrar la sesión nuevamente.@Anular
void protegido onCreate(Paquete estadoInstanciaGuardado) {
super.onCreate (SavedInstanceState);
/ * Declaraciones onCreate anteriores omitidas * /
// Busque el botón con el ID de cierre de sesión y configure un controlador de clics
mLogoutButton = (Botón) buscarViewById (cierre de sesión R.id.);
mLogoutButton.setOnClickListener (nuevo OnClickListener () {
@Anular
public void onClick (View v) {
mAuthManager.clearAuthorizationState (nuevo
APIListener () {
@Anular
public void onSuccess (resultados del paquete) {
// Establecer el estado de desconexión en la interfaz de usuario
}
@Anular
public void onError (AuthError authError) {
// Registrar el error
}
});
}
});
}
Alguno Administrador de autorización de Amazon Los métodos devuelven un objeto Future. Esto le permite llamar al método de forma sincrónica en lugar de pasar un oyente como parámetro. Si usa un objeto Future, no debe usarlo en un hilo de IU. Si bloquea un hilo de la interfaz de usuario durante más de cinco segundos, obtendrá un mensaje ANR (aplicación que no responde). En el botón Manejar el inicio de sesión y obtener Profile Datos example, el sobre el éxito método para Autorizar oyente se llama con un hilo de trabajo creado por Administrador de autorización de Amazon. Esto significa que es seguro usar ese hilo para llamar a getPirofile sincrónicamente. Para realizar una llamada síncrona, asigne el valor de retorno de conseguirPirofile a un objeto Future, y llame al método giet en ese objeto para esperar hasta que se complete el método.
Futuro.get devuelve un objeto Bundle que contiene un TIPO_FUTURO valor de ÉXITO, ERROR, or CANCELAR. Si el método fue un éxito, el mismo paquete contendrá PROFILE_Valores CLAVE para el profesionalfile datos. Por exampen:
/ * La autorización se completó con éxito. * / @Anular public void onSuccess (respuesta del paquete) { Future <Bundle> future = mAuthManager.getProfile(nulo); Bundle result = future.get (); // Averigüe si la llamada tuvo éxito y recupere el profile Objeto future_type = result.get (AuthzConstants.BUNDLE_KEY.FUTURE.val); si (tipo_futuro == AuthzConstants.FUTURE_TYPE.SUCCESS) { Nombre de cadena = result.getString (AuthzConstants.PROFILE_CLAVE.NOMBRE.val); Cadena de correo electrónico = result.getString (AuthzConstants.PROFILE_CLAVE.CORREO ELECTRÓNICO.val); Cuenta de cadena = result.getString (AuthzConstants.PROFILE_CLAVE.ID_USUARIO.val); Cadena de código postal = result.getString (AuthzConstants.PROFILE_LLAVE.CÓDIGO_POSTAL.val); runOnUiThread (new Runnable () {@Override public void run () {updateProfileDatos (nombre, correo electrónico, cuenta, código postal); } }); } más si (tipo_futuro == AuthzConstants.FUTURE_TYPE.ERROR) { // Obtener objeto de error AuthError authError = AuthError.extractError (resultado); / * Use authError para diagnosticar el error * / } |
Iniciar sesión con la Guía de inicio de Amazon para Android - Descargar [optimizado]
Iniciar sesión con la Guía de inicio de Amazon para Android - Descargar