Inicie sesión con Amazon Guía de inicio para iOS
Inicie sesión con Amazon: Guía de inicio para iOS
Copyright © 2016 Amazon.com, Inc. ou as súas filiais. Todos os dereitos reservados.
Amazon e o logotipo de Amazon son marcas comerciais de Amazon.com, Inc. ou das súas filiais. O resto das marcas comerciais que non son propiedade de Amazon son propiedade dos seus respectivos propietarios.
Introdución a iOS
Nesta guía mostrarémosche como engadir inicio de sesión con Amazon á túa aplicación para iOS. Despois de completar esta guía, debería ter un botón Iniciar sesión con Amazon na súa aplicación para permitir aos usuarios iniciar sesión coas súas credenciais de Amazon
Instalando Xcode
O inicio de sesión con Amazon SDK para iOS proporciónao Amazon para axudarche a engadir inicio de sesión con Amazon á túa aplicación para iOS. O SDK está pensado para usarse co entorno de desenvolvemento Xcode. O SDK admite aplicacións que se executan en iOS 7.0 e posteriores usando ARMv7, ARMv7s, ARM64, i386 e x86_64.
Podes instalar Xcode desde Mac App Store. Para obter máis información, consulte Xcode: Novidades en developer.apple.com.
Despois de instalar Xcode, pode Instale o inicio de sesión con Amazon SDK para iOS e Corre o Sampa aplicación, como se describe a continuación.
Instale o inicio de sesión con Amazon SDK para iOS
O inicio de sesión con Amazon SDK para iOS vén en dous paquetes. O primeiro contén a biblioteca de iOS e a documentación de apoio. O segundo contén comoampa aplicación que permite ao usuario iniciar sesión e view o seu profesionalfile datos.
Se aínda non instalou Xcode, consulte as instrucións do Instalar Xcode sección anterior.
- Descargar Iniciar sesiónWithAmazonSDKForiOS.zip e extrae o files a un directorio do seu disco duro.
Debería ver un Iniciar sesiónConAmazon.framework directorio. Isto contén a biblioteca Iniciar sesión con Amazon.
No nivel superior do zip hai un LoginWithAmazon.doc establecer o directorio. Esta contén a documentación da API. - Vexa Instale o inicio de sesión coa biblioteca de Amazon para obter instrucións sobre como engadir a biblioteca a un proxecto de iOS.
Cando estea instalado o inicio de sesión con Amazon SDK para iOS, pode Crea un novo inicio de sesión con Amazon Project despois Rexistrarse con Iniciar sesión con Amazon.
Corre o Sampa aplicación
Para executar o sampa aplicación, abra o sample en Xcode.
- Descargar SampleLoginWithAmazonAppForiOS.zip e copia o
SampleLoginWithAmazonAppForiOS no cartafol Documentos. - Inicia Xcode. Se aparece o diálogo Benvido a Xcode, faga clic en Abrir outro. Se non, fai clic no menú principal File e seleccione Abrir.
- Seleccione o cartafol Documentos e seleccione
SampleLoginWithAmazonAppForiOS / LoginWithAmazonSample/ Iniciar sesiónConAmazonSample.xcodeproj. Fai clic Aberto. - O sampagora o proxecto debería cargarse. Cando remate, escolla Produto no menú principal e selecciona Corre
Rexistrarse con Iniciar sesión con Amazon
Antes de poder usar Iniciar sesión con Amazon nun websitio ou nunha aplicación móbil, debes rexistrar unha aplicación con Login with Amazon. A túa aplicación Iniciar sesión con Amazon é o rexistro que contén información básica sobre a túa empresa e información sobre cada unha websitio ou aplicación móbil que creas que admita o inicio de sesión con Amazon. Esta información comercial móstrase aos usuarios cada vez que usan Iniciar sesión con Amazon no teu websitio ou aplicación móbil. Os usuarios verán o nome da túa aplicación, o teu logotipo e unha ligazón á túa política de privacidade. Estes pasos mostran como rexistrar unha aplicación de inicio de sesión con Amazon e engadir unha aplicación iOS a esa conta.
Vexa os seguintes temas
- Rexistre o seu inicio de sesión coa aplicación Amazon
- Engade unha aplicación iOS a un profesional de seguridadefile
- ID de paquete de iOS e claves API
o Determinar un identificador de paquete para unha aplicación para iOS
o Recuperar unha clave API de iOS
Rexistre o seu inicio de sesión coa aplicación Amazon
- Ir a https://login.amazon.com.
- Se xa se rexistrou para iniciar sesión con Amazon, faga clic en Consola de aplicacións. Se non, fai clic en Rexístrate.
Será redirixido a Seller Central, que se encarga do rexistro da aplicación para iniciar sesión con Amazon. Se é a primeira vez que usa Seller Central, solicitaráselle que configure unha conta de Seller Central. - Fai clic Rexistrar a nova aplicación. O Rexistra a túa solicitude aparecerá o formulario:
a. No formulario Rexistra a túa solicitude, introduce un nome e un Descrición para a súa aplicación.
O Nome é o nome que aparece na pantalla de consentimento cando os usuarios aceptan compartir información coa súa aplicación. Este nome aplícase a Android, iOS e webversións do sitio da túa aplicación.
b. Introduce un aviso de privacidade URL para a súa aplicación.
O Aviso de privacidade URL é a situación da política de privacidade da súa empresa ou aplicación (por exemploample, http: //www.example.com/privacy.html). Esta ligazón móstrase aos usuarios na pantalla de consentimento.
c. Se queres engadir un Imaxe do logotipo para a súa aplicación, prema Explorar e localiza a imaxe aplicable.
Este logotipo móstrase na pantalla de inicio de sesión e consentimento para representar a súa empresa ou websitio. O logotipo reducirase a 50 píxeles de altura se ten máis de 50 píxeles; non hai limitacións no ancho do logotipo. - Fai clic Gardar. O teu sampO rexistro do le debe ser semellante a isto:
Despois de gardar a configuración básica da aplicación, pode engadir axustes específicos websitios e aplicacións móbiles que usarán este inicio de sesión coa conta de Amazon.
Se diferentes versións da túa aplicación teñen ID de paquete diferentes, como para unha ou máis versións de proba e unha versión de produción, cada versión require a súa propia clave API. Dende Configuración de iOS da súa aplicación, faga clic no botón Engadir clave API botón para crear claves adicionais para a túa aplicación (unha por versión).
Engade unha aplicación iOS a un profesional de seguridadefile
Despois de gardar a configuración básica da aplicación, pode engadir axustes específicos websitios e aplicacións móbiles que usarán este inicio de sesión coa conta de Amazon.
Para rexistrar unha aplicación iOS, tes que especificar o identificador do paquete para o proxecto da aplicación. O inicio de sesión con Amazon empregará a ID do paquete para xerar unha clave API. A clave API concederá á túa aplicación acceso ao servizo de autorización Iniciar sesión co Amazon. Siga estes pasos para engadir unha aplicación iOS á súa conta:
- Na pantalla da aplicación, fai clic Configuración de iOS. Se xa tes unha aplicación para iOS rexistrada, busca a Engadir clave API botón no Configuración de iOS sección.
O Aplicación iOS Aparecerá o formulario de detalles:
- Introduza o Etiqueta da túa aplicación iOS. Este non ten que ser o nome oficial da túa aplicación. Simplemente identifica esta aplicación iOS en particular entre as aplicacións e websitios rexistrados no seu inicio de sesión coa aplicación Amazon.
- Introduce o teu ID de paquete. Isto debe coincidir co identificador do paquete do seu proxecto iOS. Para determinar o seu identificador de paquete, abra o proxecto en Xcode. Abre a lista de propiedades do proxecto ( -Info.plist) no Navegador de proxectos. O identificador do paquete é unha das propiedades da lista.
- Fai clic Gardar.
ID de paquete de iOS e claves API
O identificador do paquete é único para todas as aplicacións para iOS. O inicio de sesión con Amazon usa o Bundle ID para construír a túa clave API. A clave API permite que o servizo de autorización Iniciar sesión co Amazon recoñeza a túa aplicación.
Determine un identificador de paquete para unha aplicación de iOS
- Abre o proxecto da túa aplicación en Xcode.
- Abre o Lista de propiedades de información para o proxecto ( -Info.plist) no Navegador de proxectos.
- Atopar Identificador do paquete na lista de propiedades.
Recuperar unha clave API de iOS
Despois de ter rexistrado unha versión de iOS e proporcionado un ID de paquete, pode recuperar a clave API da páxina de rexistro do seu inicio de sesión coa aplicación Amazon. Deberá colocar esa clave API na lista de propiedades do seu proxecto. Mentres non o faga, a aplicación non estará autorizada para comunicarse co servizo de autorización Iniciar sesión co Amazon.
1. Vaia a https://login.amazon.com.
2. Fai clic Consola de aplicacións.
3. No Aplicacións prema na súa aplicación.
4. Busque a súa aplicación iOS baixo o Configuración de iOS sección. Se aínda non rexistrou unha aplicación para iOS, consulte Engade unha aplicación iOS a un profesional de seguridadefile.
5. Fai clic Xera un valor clave API. Unha xanela emerxente amosará a túa clave API. Para copiar a clave, faga clic en Seleccione Todo para seleccionar a tecla enteira.
Nota: O valor da chave API baséase, en parte, no tempo en que se xera. Así, os seguintes valores clave de API que xera poden diferir do orixinal. Podes usar calquera destes valores clave API na túa aplicación xa que todos son válidos.
6. Véxase Engade a túa clave API á lista de propiedades da túa aplicación para obter instrucións sobre como engadir a clave API á túa aplicación iOS
Creación dun inicio de sesión con Amazon Project
Nesta sección, aprenderás a crear un novo proxecto Xcode para iniciar sesión con Amazon e configurar o proxecto.
Vexa os seguintes temas:
- Crea un novo inicio de sesión con Amazon Project
- Instale o inicio de sesión coa biblioteca de Amazon
- Engade a túa clave API á lista de propiedades da túa aplicación
- Engadir a URL Esquema da lista de propiedades da túa aplicación
- Engade unha excepción de seguridade de transporte de aplicacións para Amazon á túa aplicación Lista de propiedades
NOTA: Este novo paso é necesario actualmente cando se desenvolve no SDK de iOS 9 - Engade un inicio de sesión co botón Amazon á túa aplicación
Crea un novo inicio de sesión con Amazon Project
Se aínda non tes un proxecto de aplicación para usar Iniciar sesión con Amazon, sigue as instrucións seguintes para crear un. Se tes unha aplicación existente, vai á sección Instalar o inicio de sesión coa biblioteca de Amazon a continuación.
- Lanzamento Xcode.
- Se che presentan un Benvido a Xcode diálogo, seleccione Crea un novo proxecto Xcode.
Se non, dende o File menú, seleccione Novo e Proxecto. - Seleccione o tipo de proxecto que desexa crear e prema A continuación.
- Introduza a Nome do produto e a Identificador da empresa. Teña en conta o seu Identificador de paquete, e fai clic A continuación.
- Selecciona un lugar onde gardar o teu proxecto e fai clic en Crear.
Agora terá un novo proxecto que pode empregar para chamar a Iniciar sesión con Amazon.
Instale o inicio de sesión coa biblioteca de Amazon
Se aínda non descargou o inicio de sesión con Amazon SDK para iOS, consulte Instale o inicio de sesión con Amazon SDK para iOS.
Un proxecto de inicio de sesión con Amazon debe ligar o ficheiro Iniciar sesiónConAmazon.framework e Marco de seguridade bibliotecas. Tamén necesitará configurar a ruta de busca do marco para atopar o inicio de sesión con cabeceiras de Amazon
- Co seu proxecto aberto en Xcode, seleccione o Marcos cartafol, faga clic en File no menú principal e logo seleccione Engadir Files a “Proxecto”.
- No diálogo, selecciona Iniciar sesiónConAmazon.framework e prema Engadir.
Se utilizou a biblioteca Iniciar sesión con Amazon 1.0, elimine o directorio login-con-amazon sdk e login-con-amazon-sdk.a do cartafol Frameworks. Fai clic en Editar no menú principal e selecciona Eliminar. - Seleccione o nome do seu proxecto no Navegador de proxectos.
O Editor de proxectos aparecerá na área de editor do espazo de traballo Xcode. - Fai clic no nome do teu proxecto en Obxectivos, e selecciona Construír fases. Expanda Ligazón binaria con bibliotecas e faga clic no signo máis para engadir unha biblioteca.
- No cadro de busca, introduza Marco de seguridade. Seleccione Security.framework e prema Engadir.
- No cadro de busca, introduza SafariServices.framework. Seleccione SafariServices.framework e fai clic Engadir.
- No cadro de busca, introduza CoreGraphics.framework. Seleccione CoreGraphics.framework e fai clic Engadir
- Seleccione Configuración de compilación. Fai clic en Todo para view todas as opcións.
- Baixo Buscar camiños, asegúrese de que o Iniciar sesiónConAmazon.framework está no directorio Camiños de busca de marco.
Por exampLe:
Se usou o inicio de sesión coa biblioteca Amazon 1.0, pode eliminar calquera referencia á ruta da biblioteca 1.0 na Camiños de busca de cabeceiras or Camiños de busca de bibliotecas. - Desde o menú principal, fai clic Produto e selecciona Construír. A compilación debería completarse correctamente.
Antes de construír o seu proxecto, se usou a biblioteca Iniciar sesión con Amazon 1.0, substitúa #import “AIMobileLib.h”, #import “AIAuthenticationDelegate.h”, or #importar "AIError.h" na túa fonte files con #importar
.
Iniciar sesiónConAmazon.h inclúe todo o inicio de sesión con cabeceiras de Amazon á vez.
Engade a túa clave API á lista de propiedades da túa aplicación
Cando rexistra a súa aplicación iOS con Iniciar sesión con Amazon, asignaráselle unha clave API. Este é un identificador que a biblioteca móbil de Amazon usará para identificar a súa aplicación para iniciar sesión co servizo de autorización de Amazon. A biblioteca móbil de Amazon carga este valor en tempo de execución a partir do valor da propiedade API Key na lista de propiedades de información da túa aplicación.
- Co proxecto aberto, selecciona o Apoiando Files cartafol e seleccione o -Info.plist file (onde é o nome do seu proxecto). Isto debería abrir a lista de propiedades para editalo:
- Asegúrese de que ningunha das entradas está seleccionada. A continuación, fai clic no menú principal Editor, e Engadir elemento. Entra APIKey e prema Entra.
- Faga dobre clic baixo o botón Valor columna para engadir un valor. Pega a túa clave API como valor.
Engadir a URL Esquema da lista de propiedades da túa aplicación
Cando o usuario inicie sesión, presentaráselle unha páxina de inicio de sesión de Amazon. Para que a túa aplicación reciba a confirmación do seu inicio de sesión, debes engadir un URL esquema para que o web páxina pode redireccionar de novo á súa aplicación. O URL o esquema debe declararse como amzn- (por example, amzncom.example.app). Para obter máis información, consulte Usando URL Esquemas para comunicarse con aplicacións en developer.apple.com.
- Co proxecto aberto, selecciona o Apoiando Files cartafol e seleccione o -Info.plist file (onde é o nome do seu proxecto). Isto debería abrir a lista de propiedades para editalo:
- Asegúrese de que ningunha das entradas está seleccionada. A continuación, fai clic no menú principal Editor, e Engadir elemento. Introduza ou seleccione URL tipos e prema Entra.
- Expandir URL tipos revelar Elemento 0. Seleccione Elemento 0 e, no menú principal, faga clic en Editor e engadir elemento. Introduza ou seleccione URL Identificador e prensa Entra.
- Seleccione Elemento 0 baixo URL Identificador e faga dobre clic baixo a columna Valor para engadir un valor. O valor é o teu ID de paquete. Podes atopar o teu ID de paquete listado como identificador de paquete na lista de propiedades.
- Seleccione Elemento 0 baixo URL tipos e, no menú principal, faga clic en Editor e Engadir elemento. Introduza ou seleccione URL Esquemas e prema Intro.
- Seleccione Elemento 0 baixo URL Esquemas e faga dobre clic baixo o botón Valor columna para engadir un valor. O valor é o teu ID de paquete amzn- prepended (por example, amzn com.example.app). Podes atopar o teu ID de paquete como Identificador do paquete na lista de propiedades.
Engade unha excepción de seguridade de transporte de aplicacións para Amazon á túa aplicación
Lista de propiedades
A partir de iOS 9, Apple aplica App Transport Security (ATS) para conexións seguras entre unha aplicación e web Servizos. O punto final (api.amazon.com) co que interactúa Login with Amazon SDK para intercambiar información aínda non se axusta a ATS. Engade unha excepción para api.amazon.com para permitir unha comunicación perfecta entre o SDK e o servidor de Amazon.
- Co proxecto aberto, selecciona o Apoiando Files cartafol e seleccione o -Info.plist file (onde é o nome do seu proxecto). Isto debería abrir a lista de propiedades para a edición:
- Asegúrese de que ningunha das entradas estea Entón, dende o menú principal, faga clic en Editor, e Engadir elemento. Introduza ou seleccione NSAppTransportSecurity e prema Entra.
- Expandir NSAppTransportSecurity e, no menú principal, faga clic en Editor e Engadir elemento. Introduza ou seleccione NSExceptionDomains e prema Entra.
- Expandir NSExceptionDomains e, no menú principal, faga clic en Editor e Engadir elemento. Entra en amazon.com e prema Entra.
- Expandir amazon.com e, no menú principal, faga clic en Editor e Engadir elemento.Entrar NSExceptionRequiresForwardSecrecy e prema Entra.
- Seleccione NSExceptionRequiresForwardSecrecy e faga dobre clic baixo o botón Valor para engadir unha columna Seleccione a Tipo of Booleano e a Valor of NON.
O inicio de sesión con Amazon ofrece varios botóns estándar que pode empregar para solicitar aos usuarios que inicien sesión desde a súa aplicación. Esta sección ofrece os pasos para descargar un inicio de sesión oficial con imaxe de Amazon e emparellalo cun botón UIB de iOS.
- Engade un botón UIB estándar á túa aplicación.
Para ver titoriais e información sobre como engadir un botón a unha aplicación, consulte Creación e configuración View Obxectos e Comeza a desenvolver aplicacións para iOS hoxe en developer.apple.com. - Engade o Retoque dentro evento para o botón dun método chamado onLoginButtonClicked. Deixe a implementación en branco por agora. O Creando e Configurando View Obxectos e Comeza a desenvolver aplicacións para iOS hoxe Os documentos en apple.com inclúen pasos para engadir un evento de botón.
- Escolle unha imaxe de botón.
Consulte o noso inicio de sesión con Amazon Pautas de estilo para obter unha lista de botóns que podes usar na túa aplicación. Descargue unha copia do LWA_for_iOS.zip file. Busque o seu botón preferido nos directorios 1x e 2x e extráeo do zip. Extrae a versión _premida do botón se quere mostrar o botón nun estado seleccionado. - Engade as imaxes ao teu proxecto.
a. En Xcode, co proxecto cargado, faga clic en File no menú principal e selecciona Engadir Files para "proxectar".
b. No diálogo, selecciona a imaxe do botón file(s) que descargaches e fai clic Engadir.
c. Os botóns deberían estar agora no proxecto no seu directorio de proxectos. Móveos ao soporte Filesfolder. - Engade a imaxe ao teu botón.
Para habilitar a imaxe do seu botón, pode modificar o atributo do botón ou usar o setImage: forState método no Botón UIB obxecto. Siga estes pasos para modificar o atributo de imaxe do seu botón:
a. Abre o guión gráfico da túa aplicación.
b. Selecciona o botón do teu guión gráfico facendo clic nel ou seleccionándoo no menú View Controlador Árbore da escena.
c. No Utilidades fiestra, abre a Inspector de atributos.
d. Na parte superior do Inspector de atributos, configure o tipo de botón en Sistema.
e. No segundo grupo de opcións, seleccione Predeterminado para State Config.
f. No segundo grupo de axustes, despregue a opción Imaxe.
g. Selecciona o gráfico do botón Iniciar sesión con Amazon que engadiches ao proxecto. Non seleccione a versión 2x: cargarase automaticamente nos dispositivos de visualización de alta densidade (Retina).
h. Estableza a mesma imaxe para a configuración de fondo.
i. Se desexa especificar unha versión premida do botón, seleccione Seleccionado para a configuración do estado e configure a imaxe na versión _Premida do botón.
j. No guión gráfico, axuste o tamaño do botón para acomodar a imaxe, se é necesario.
Usando o SDK para as API de iOS
Nesta sección, engadirás código ao teu proxecto para iniciar sesión nun usuario con Iniciar sesión con Amazon.
Vexa os seguintes temas:
- Manexa o botón de inicio de sesión e obtén Profile Datos
- Busque o inicio de sesión de usuario
- Limpar o estado de autorización e pechar sesión nun usuario
Esta sección explica como chamar ao authorizeUserForScopes: delegado: e getProfile: APIs para iniciar sesión nun usuario e recuperar o seu profesionalfile datos. Isto inclúe a creación dun onLoginButtonClicked: oínte para o botón Iniciar sesión con Amazon.
- Engade inicio de sesión con Amazon ao teu proxecto iOS. Consulte Instalar o inicio de sesión coa biblioteca de Amazon.
- Importe o inicio de sesión coa API de Amazon á súa fonte file.
Para importar o inicio de sesión coa API de Amazon, engada o seguinte #declaracións de importación á túa fonte file:#import - Crea o AMZNAuthorizeUserDelegateclass para implementar
Delegado de autenticación AIA.
Cando authorizeUserForScopes: delegado: completa, chamará ao requestDidSucceed: or requestDidFail: método nun obxecto que implementa o Delegado de autenticación AIA protocolo.@interface AMZNAuthorizeUserDelegate: NSObject @ fin Para obter máis información, consulte Traballando con protocolos en developer.apple.com.
- Chamar authorizeUserForScopes: delegado: in onLoginButtonClicked.
Se seguiu os pasos indicados en Engade un inicio de sesión co botón Amazon á túa aplicación, debería ter un onLoginButtonClicked: método ligado a un botón Iniciar sesión con Amazon. Nese método, chama authorizeUserForScopes: delegado: a solicite ao usuario que inicie sesión e autorice a súa aplicación.
Este método permitirá ao usuario iniciar sesión e consentir a información solicitada dunha das seguintes formas:
1.) Cambia a web view nun contexto seguro (se a aplicación Amazon Shopping está instalada no dispositivo)
2.) Cambia a Safari View Controlador (en iOS 9 e posterior)
3.) Cambia ao navegador do sistema (en iOS 8 e versións anteriores)
O contexto seguro da primeira opción está dispoñible cando a aplicación Amazon Shopping está instalada no dispositivo. Se o usuario xa iniciou sesión na aplicación Amazon Shopping, omítese a páxina de inicio de sesión, o que leva a un Inicio de sesión único (SSO) experiencia.Cando se autoriza a súa aplicación, autorízase para un ou máis conxuntos de datos coñecidos como ámbito. O primeiro parámetro é unha matriz de ámbitos que abarcan os datos de usuario que está solicitando de Iniciar sesión con Amazon. A primeira vez que un usuario inicie sesión na súa aplicación, presentaráselle unha lista dos datos que solicita e solicita a súa aprobación. O inicio de sesión con Amazon soporta actualmente tres ámbitos: profile, que contén o nome do usuario, o enderezo de correo electrónico e a identificación da conta de Amazon; profile:ID do usuario, que só contén o ID da conta de Amazon; e código postal, que contén o código postal / postal do usuario.
O segundo parámetro para authorizeUserForScopes: delegado: é un obxecto que implementa o Protocolo delegado de autenticación AIA, neste caso unha instancia do AMZNAuthorizeUserDelegate clase.- (IBAction) onLogInButtonClicked: (id) remitente {
// Facer unha autorización de chamada ao SDK para obter un token de acceso seguro
// para o usuario.
// Durante a primeira chamada pode especificar o mínimo básico
// alcance necesario.// Solicitar os dous ámbitos para o usuario actual.
NSArray * requestScopes =
[NSArray arrayWithObjects:@”profile”, @”código_postal”, nil];AMZNAuthorizeUserDelegate * delegado =
[AIMobileLib authorizeUserForScopes: requestScopes delegado: delegado];
[[AMZNAuthorizeUserDelegate alloc] initWithParentController: self];Engada o seu encabezado de implementación de delegado á chamada de clase
authorizeUserForScopes :. Por exampLe:#import “AMZNAuthorizeUserDelegate.h” - Crear un AMZNGetProfileDelegado.
AMZNGetProfileDelegados o noso nome para unha clase que implementa o
Protocolo delegado de autenticación AIA, e procesará o resultado do getProfile: chamar. Como authorizeUserForScopes:delegate:, getProfile: apoia o requestDidSucceed: e requestDidFail: métodos de protocolo. requestDidSucceed: recibe un APIResultado obxecto con profile datos na propiedade do resultado. requestDidFail: recibe un AIEerror obxecto con información sobre o erro na propiedade de erro.
Para crear unha clase delegada a partir dunha declaración de clase normal, importe
AIAuthenticationDelegate.hand engade o protocolo á declaración na cabeceira da túa clase file:#importar @interface AMZNGetProfileDelegado: NSObject @end - Implementar requestDidSucceed: for teu AMZNAuthorizeUserDelegate. In requestDidSucceed :, chamar getProfile: para recuperar o cliente profesionalfile. getProfile:, como authorizeUserForScopes: delegate :, usa o protocolo AIAuthenticationDelegate.
- (void) requestDidSucceed: (APIResult *) apiResult {
// O seu código despois de que o usuario autorice a solicitude
// alcance solicitado.// Cargar novo view controlador con información de identificación do usuario
// xa que o usuario inicia sesión correctamente.AMZNGetProfileDelegado* delegado =
[[AMZNGetProfileDelegar asignación] initWithParentController:parentViewControlador] liberación automática];
[AIMobileLib getProfile:delegado];
}Engada o seu encabezado de implementación de delegado á chamada de clase getProfile:. ForexampLe:
#import "AMZNGetProfileDelegado.h” - Implementar requestDidSucceed: para o teu AMZNGetProfileDelegado.
requestDidSucceed: ten dúas tarefas principais: recuperar o profesionalfile datos do APIResult, e pasar os datos á IU.
Para recuperar o profesionalfile datos do APIResult, acceder á propiedade do resultado. Para un getProfile: resposta, esa propiedade conterá un dicionario de valores de propiedade para o usuario profile propiedades. O profile propiedades son nome, correo electrónico, e ID do usuario para o profile ámbito e
código_postal para o código_postal ámbito.- (void) requestDidSucceed: (APIResult *) apiResult {
// Conseguir profile solicitude foi exitosa. Desempaquetar o profile información
// e pasallo ao pai view controladorNSString * name = [(NSDictionary *) apiResult.result
objectForKey: @ ”nome”];
NSString * email = [(NSDictionary *) apiResult.result
objectForKey: @ ”correo electrónico”];
NSString * user_id = [(NSDictionary *) apiResult.result
objectForKey: @ ”user_id”];
NSString * postal_code = [(NSDictionary *) apiResult.result
objectForKey: @ ”postal_code”];// Pasar datos a view controlador
} - Implementar requestDidFail: para o teu AMZNGetProfileDelegado.
requestDidFail: inclúe un Erro APIE obxecto que contén detalles sobre o erro. showLogInPageis un método hipotético que restablecería o principal view controlador para mostrar o botón Iniciar sesión con Amazon.- (void) requestDidFail: (APIError *) errorResponse {
// Obter Profile fallou a solicitude para profile ámbito.
// Se o código de erro = kAIApplicationNotAuthorized,
// permitir ao usuario iniciar sesión de novo.
if (errorResponse.error.code == kAIApplicationNotAuthorized) {
// Mostrar o botón de autorización de usuario.
[paiViewControlador showLogInPage];
}
senón {
// Xestionar outros erros
[[[[UIAlertView alloc] initWithTitle:@"" mensaxe:[NSString
stringWithFormat: @ "Produciuse un erro coa mensaxe:% @",
errorResponse.error.message] delegado: nulo
cancelButtonTitle: @ ”OK” otherButtonTitles: nil] autorelease] show];
}
} - Implementar requestDidFail: para teu AMZNAuthorizeUserDelegate.
- (void) requestDidFail: (APIError *) errorResponse {
NSString * message = errorResponse.error.message;
// O teu código cando falla a autorización. [[[[UIAlertView alloc] initWithTitle:@"" mensaxe:[NSString
stringWithFormat: @ "Fallou a autorización do usuario coa mensaxe:% @", errorResponse.error.message] delegado: nil
cancelButtonTitle: @ ”OK” otherButtonTitles: nil] autorelease] show];
}10. Implementar aplicación: abertaURL: sourceApplication: anotación: na clase do seu proxecto que manexa o UIApplicationDelegate protocolo (por defecto este será o AppDelegateclass no seu proxecto). Cando a aplicación presente a páxina de inicio de sesión de Amazon e o usuario completa o inicio de sesión, redirixirase á aplicación usando o URL Programa a aplicación rexistrada anteriormente. Esta redirección pásase a aplicación: abertaURL: sourceApplication: annotation :, que volve SI se o URL tratouse con éxito. manexarAbrirURL: sourceApplication: é unha función de biblioteca SDK que xestionará o inicio de sesión con redirección de Amazon URLs para ti. Se manexarAbrirURL: sourceApplication: devolve SI, entón o URL manipulouse.
- Aplicación (BOOL): aplicación (UIApplication *)
abertoURL: (NSURL *)url
sourceApplication: (NSString *) sourceApplication
anotación: (id) anotación
{
// Pasa o url ao SDK para analizar o código de autorización // desde o url.
BOOL isValidRedirectSignInURL =
[AiMobileLib handleOpenURL:url
sourceAppli cation: sour ceApplicati on);
if (! isValidRedirect Si gnlnURL)
devolver NON;
// A aplicación pode querer manexala url devolver SI;
}NOTA: Este método está obsoleto en iOS 9 pero debería incluírse no seu proxecto para manter a compatibilidade cos usuarios en plataformas antigas. Para máis información sobre aplicación: abertaURL: sourceApplication: annotation :, ver Referencia do protocolo delegado UIApplicationDelegate en developer.apple.com.
Busque o inicio de sesión de usuario
Se un usuario inicia sesión na súa aplicación, pecha a aplicación e reinicia a aplicación máis tarde, a aplicación aínda está autorizada a recuperar datos. O usuario non se pecha sesión automaticamente. Ao iniciar, pode amosar ao usuario como iniciada sesión se a súa aplicación aínda está autorizada. Esta sección explica como usar
getAccessTokenForScopes: withOverrideParams: delegado: para ver se a aplicación aínda está autorizada.
- Crear un AMZNGetAccessTokenDelegate clase. AMZNGetAccessTokenDelegateimplements o Delegado de autenticación AIA e procesará o resultado do
getAccessTokenForScopes: withOverrideParams: delegado: chamar. Delegado de autenticación AIA contén dous métodos, requestDidSucceed: e requestDidFail :. requestDidSucceed: recibe un APIResultado obxecto con datos de token, mentres requestDidFail: recibe un Erro APIE obxecto con información sobre o erro.#import @interface AMZNGetAccessTokenDelegate: NSObject
@fin
Engada o seu encabezado de implementación de delegado á chamada de clase
getAccessTokenForScopes: withOverrideParams: delegado :. ForexampLe:#import “AMZNGetAccessTokenDelegate.h” - Ao iniciar a aplicación, chama
getAccessTokenForScopes: withOverrideParams: delegado: para ver se a aplicación aínda está autorizada. getAccessTokenForScopes: withOverrideParams: delegado: recupera o token de acceso bruto que usa Login with Amazon para acceder a un cliente profesionalfile. Se o método ten éxito, a aplicación aínda está autorizada e unha chamada a getProfile: debería ter éxito. getAccessTokenForScopes: withOverrideParams: delegado: usa o Delegado de autenticación AIA protocolo do mesmo xeito que authorizeUserForScopes: delegado :. Pase o obxecto que implementa o protocolo como parámetro delegado.- (void) checkIsUserSignedIn {
AMZNGetAccessTokenDelegate * delegado =
[[[AMZNGetAccessTokenDelegate alloc] initWithParentController:self] autorelease];
NSArray * requestScopes =
[NSArray arrayWithObjects:@”profile”, @”código_postal”, nil]; [AIMobileLib getAccessTokenForScopes:requestScopes withOverrideParams:nil delegado:delegate];
} - Implementar requestDidSucceed: no teu AMZNGetAccessTokenDelegate. requestDidSucceed: ten unha tarefa: chamar getProfile:. Este examplle chama getProfile: usando o mesmo oínte que declarou na sección anterior (ver os pasos 6-8).
#import "AMZNGetProfileDelegado.h”
#import- (void) requestDidSucceed: (APIResult *) apiResult {
// O teu código para usar o token de acceso vai aquí.// Dado que a aplicación ten autorización para os nosos ámbitos, podemos
[AIMobileLib getProfile:delegado];
// obter o usuario profile.
AMZNGetProfileDelegado* delegado = [[AMZNGetProfileDelegar asignación] initWithParentController:parentViewControlador] liberación automática];
} - Implementar requestDidFail: no teu AMZNGetAccessTokenDelegate.
requestDidFail: inclúe un Erro APIE obxecto que contén detalles sobre o erro. Se recibe un erro, pode restablecer o principal view controlador para mostrar o botón Iniciar sesión con Amazon.- (void) requestDidFail: (APIError *) errorResponse {
// O seu código para xestionar a recuperación fallida do token de acceso.
// Se o código de erro = kAIApplicationNotAuthorized, permítelle ao usuario
// para iniciar sesión de novo.
if (errorResponse.error.code == kAIApplicationNotAuthorized) {
// Mostrar inicio de sesión co botón Amazon.
}
senón {
// Xestionar outros erros
[[[[UIAlertView alloc] initWithTitle:@"" mensaxe:[NSString
stringWithFormat: @ "Produciuse un erro coa mensaxe:% @", errorResponse.error.message] delegado: nil
cancelButtonTitle:@”OK” otherButtonTitles:nil] autorelease] show];
}
}
O clearAuthorizationState: borrará os datos de autorización do usuario do AIMobileLib almacén de datos local. Un usuario terá que iniciar sesión de novo para que a aplicación recupere profile datos. Utilice este método para pechar sesión nun usuario ou para solucionar problemas de inicio de sesión na aplicación.
- Declara un AMZNLoutDelegate. Esta é unha clase que implementa o
AIAuthenticationDelegateprotocolo. Para os nosos propósitos, podemos herdar a clase de Obxecto NSO:
#import @interface AMZNLogoutDelegate NSObject
@fin
Engada o seu encabezado de implementación de delegado á chamada de clase clearAuthorizationState :. Por exampLe:
#import “AMZNLogoutDelegate.h” - Chamar clearAuthorizationState :.
Cando un usuario inicie sesión correctamente, pode proporcionar un mecanismo de saída para que poida borrar os seus datos de autorización. O teu mecanismo pode ser unha hiperligazón ou un elemento de menú, pero para este escenario o example vai crear un Método logoutButtonClicked para un botón de saída.- (IBAction) logoutButtonClicked: (id) remitente {
AMZNLogoutDelegate* delegate = [[[AMZNLogoutDelegate alloc] initWithParentController:self] autorelease]; [AIMobileLib clearAuthorizationState:delegate];
}O único parámetro para clearAuthorizationState é un Delegado de autenticación AIA que implementa requestDidSucceed: e requestDidFail :.
- Implementar requestDidSucceed :. Este método chamarase cando se borre a información do usuario. Deberías amosalos como desconectado.
- (void) requestDidSucceed: (APIResult *) apiResult {
// A súa lóxica adicional despois da autorización do usuario
// estado está borrado.
[[UIAlertView alloc] initWithTitle:@”” mensaxe:@”Usuario pechou sesión”.
delegado:nil cancelButtonTitle:@”OK” otherButtonTitles:nil] mostrar];
} - Implementar requestDidFail :. Este método chamarase se por algún motivo non se pode borrar a información do usuario da caché. Nese caso, non deberías amosalos como desconectado.
- (void) requestDidFail: (APIError *) errorResponse {
// Non se puido borrar a súa lóxica adicional despois do SDK
// o estado da autorización. [[[[UIAlertView alloc] initWithTitle:@"" mensaxe:[NSString
stringWithFormat: @ "Fallou a sesión de usuario coa mensaxe:% @",
errorResponse.error.message] delegado: nulo
cancelButtonTitle:@”OK” otherButtonTitles:nil] autorelease] show];
}
Proba a túa integración
Inicia a túa aplicación nun dispositivo ou simulador iOS e confirma que podes iniciar sesión coas túas credenciais de Amazon.com.
Nota: Ao probar en simuladores iOS10, é posible que vexa a mensaxe de erro APIKey para a aplicación non válida para unha solicitude authorizeUserForScopes ou un código de erro descoñecido para unha solicitude clearAuthorizationState. Este é un erro coñecido con Apple que ocorre cando o SDK intenta acceder ao chaveiro. Ata que Apple resolva o erro, podes solucionalo habilitando o uso compartido de chaveiros na túa aplicación na pestana Capacidades do destino da túa aplicación. Este erro só afecta aos simuladores. Podes probar en dispositivos iOS10 reais sen usar ningunha solución.
Inicie sesión con Amazon Guía de inicio para iOS versión 2.1.2 - Descargar [optimizado]
Inicie sesión con Amazon Guía de inicio para iOS versión 2.1.2 - Descargar