Inicieu la sessió amb la Guia d'inici d'Amazon per a iOS
Inicieu la sessió amb Amazon: Guia d'introducció per a iOS
Copyright © 2016 Amazon.com, Inc. o els seus afiliats. Tots els drets reservats.
Amazon i el logotip d’Amazon són marques comercials d’Amazon.com, Inc. o dels seus afiliats. La resta de marques comercials que no són propietat d’Amazon són propietat dels seus respectius propietaris.
Introducció a iOS
En aquesta guia us mostrarem com afegir l'inici de sessió amb Amazon a la vostra aplicació per a iOS. Després de completar aquesta guia, haureu de tenir un botó d'inici de sessió funcionant amb Amazon a la vostra aplicació per permetre als usuaris iniciar sessió amb les seves credencials d'Amazon.
Instal·lació de Xcode
Amazon proporciona l’inici de sessió amb Amazon SDK per a iOS per ajudar-vos a afegir l’inici de sessió amb Amazon a la vostra aplicació per a iOS. L'SDK està pensat per utilitzar-se amb l'entorn de desenvolupament Xcode. L'SDK admet aplicacions que s'executen a iOS 7.0 i versions posteriors mitjançant ARMv7, ARMv7s, ARM64, i386 i x86_64.
Podeu instal·lar Xcode des del Mac App Store. Per obtenir més informació, vegeu Xcode: novetats a developer.apple.com.
Un cop instal·lat Xcode, podeu fer-ho Instal·leu l'inici de sessió amb Amazon SDK per a iOS i Executar el Sampl'aplicació, tal com es descriu a continuació.
Instal·leu l'inici de sessió amb Amazon SDK per a iOS
L’inici de sessió amb Amazon SDK per a iOS es presenta en dos paquets. El primer conté la biblioteca iOS i la documentació de suport. El segon conté comampl'aplicació que permet a un usuari iniciar sessió i view el seu professionalfile dades.
Si encara no heu instal·lat Xcode, consulteu les instruccions del fitxer Instal·leu Xcode secció anterior.
- Descarregar Inicieu sessió ambAmazonSDKForiOS.zip i extreu el files a un directori del disc dur.
Hauríeu de veure una Inicieu sessió amb Amazon.framework directori. Conté la biblioteca Inicia sessió amb Amazon.
Al nivell superior de la cremallera hi ha un fitxer LoginWithAmazon.doc establir el directori. Conté la documentació de l'API. - Mireu Instal·leu l'inici de sessió amb la biblioteca d'Amazon per obtenir instruccions sobre com afegir la biblioteca a un projecte iOS.
Quan estigui instal·lat l'inici de sessió amb Amazon SDK per a iOS, podeu fer-ho Creeu un nou inici de sessió amb Amazon Project després Registrar-se a Iniciar sessió amb Amazon.
Executar el Sampl'aplicació
Per executar el sampl'aplicació, obriu el sampen Xcode.
- Descarregar SampleLoginWithAmazonAppForiOS.zip i copiar el
SampleLoginWithAmazonAppForiOS directori a la carpeta Documents. - Inicieu Xcode. Si apareix el diàleg Benvingut a Xcode, feu clic a Obre un altre. En cas contrari, feu clic al menú principal File i seleccioneu Obre.
- Seleccioneu la carpeta Documents i seleccioneu
SampleLoginWithAmazonAppForiOS / LoginWithAmazonSample / LoginWithAmazonSample.xcodeproj. Feu clic Obert. - El sampel projecte ara s'hauria de carregar. Quan hagi acabat, trieu Producte des del menú principal i seleccioneu Corre
Registrar-se a Iniciar sessió amb Amazon
Abans de poder utilitzar Inici de sessió amb Amazon a weblloc o en una aplicació mòbil, heu de registrar una aplicació amb Inici de sessió amb Amazon. La vostra aplicació d'inici de sessió amb Amazon és el registre que conté informació bàsica sobre la vostra empresa i informació sobre cadascuna weblloc o aplicació mòbil que creeu que admet la sessió amb Amazon. Aquesta informació empresarial es mostra als usuaris cada vegada que utilitzen Inici de sessió amb Amazon al vostre weblloc o aplicació mòbil. Els usuaris veuran el nom de la vostra sol·licitud, el vostre logotip i un enllaç a la vostra política de privadesa. Aquests passos mostren com registrar un inici de sessió amb l'aplicació Amazon i afegir una aplicació iOS a aquest compte.
Vegeu els temes següents
- Registreu el vostre inici de sessió amb l'aplicació Amazon
- Afegiu una aplicació per a iOS a Security Profile
- ID de paquet d'iOS i claus d'API
o Determineu un identificador de paquet per a una aplicació per a iOS
o Recupereu una clau d'API d'iOS
Registreu el vostre inici de sessió amb l'aplicació Amazon
- Vés a https://login.amazon.com.
- Si ja us heu registrat per iniciar sessió amb Amazon, feu clic a Consola d'aplicacions. En cas contrari, feu clic a Registra't.
Se us redirigirà a Seller Central, que gestiona el registre de sol·licituds per iniciar la sessió amb Amazon. Si és la primera vegada que utilitzeu Seller Central, se us demanarà que configureu un compte de Seller Central. - Feu clic Registre una nova aplicació. El Registreu la vostra sol·licitud apareixerà el formulari:
a. Al formulari Registra la teva sol·licitud, introdueix un nom i un Descripció per a la seva aplicació.
El Nom és el nom que es mostra a la pantalla de consentiment quan els usuaris accepten compartir informació amb la vostra aplicació. Aquest nom s'aplica a Android, iOS i webversions del lloc de la vostra aplicació.
b. Introduïu un avís de privadesa URL per a la seva aplicació.
L’avís de privadesa URL és la ubicació de la política de privadesa de la vostra empresa o aplicació (per exemple,ample, http: //www.example.com/privacy.html). Aquest enllaç es mostra als usuaris a la pantalla de consentiment.
c. Si voleu afegir un Imatge del logotip per a la vostra aplicació, feu clic Navega i localitza la imatge corresponent.
Aquest logotip es mostra a la pantalla d'inici de sessió i consentiment per representar la vostra empresa o weblloc. El logotip es reduirà a 50 píxels d’alçada si supera els 50 píxels; no hi ha limitacions sobre l'amplada del logotip. - Feu clic Desa. El teu sampel registre hauria de ser semblant a això:
Després de desar la configuració bàsica de l'aplicació, podeu afegir paràmetres específics webllocs i aplicacions mòbils que faran servir aquest inici de sessió amb el compte d’Amazon.
Si diferents versions de la vostra aplicació tenen identificadors de paquet diferents, com ara una o més versions de prova i una versió de producció, cada versió requereix la seva pròpia clau API. Des del Configuració d'iOS de la vostra aplicació, feu clic a Afegeix una clau API per crear claus addicionals per a la vostra aplicació (una per versió).
Afegiu una aplicació per a iOS a Security Profile
Després de desar la configuració bàsica de l'aplicació, podeu afegir paràmetres específics webllocs i aplicacions mòbils que faran servir aquest inici de sessió amb el compte d’Amazon.
Per registrar una aplicació per a iOS, heu d'especificar l'identificador del paquet per al projecte de l'aplicació. L'inici de sessió amb Amazon utilitzarà l'identificador de paquet per generar una clau API. La clau API permetrà l'accés de l'aplicació al servei d'autorització Iniciar sessió amb Amazon. Seguiu aquests passos per afegir una aplicació iOS al vostre compte:
- A la pantalla de l'aplicació, feu clic Configuració d'iOS. Si ja teniu registrada una aplicació per a iOS, busqueu el fitxer Afegeix una clau API botó a Configuració d'iOS secció.
El Aplicació iOS Apareixerà el formulari de detalls:
- Introduïu el Etiqueta de la vostra aplicació per a iOS. Aquest no ha de ser el nom oficial de la vostra aplicació. Simplement identifica aquesta aplicació específica per a iOS entre les aplicacions i webllocs registrats al vostre inici de sessió amb l'aplicació Amazon.
- Introduïu el vostre ID del paquet Ha de coincidir amb l'identificador del paquet del vostre projecte iOS. Per determinar el vostre identificador de paquet, obriu el projecte a Xcode. Obriu la llista de propietats del projecte ( -Info.plist) al fitxer Navegador de projectes. L'identificador del paquet és una de les propietats de la llista.
- Feu clic Desa.
ID de paquet d'iOS i claus d'API
L'identificador de paquet és únic per a totes les aplicacions per a iOS. L’inici de sessió amb Amazon utilitza l’identificador de paquet per construir la vostra clau API. La clau API permet que el servei d'autorització Inicia sessió amb Amazon reconegui la vostra aplicació.
Determineu un identificador de paquet per a una aplicació per a iOS
- Obriu el projecte de l'aplicació a Xcode.
- Obriu el Informació Llista de propietats per al projecte ( -Info.plist) en el Navegador de projectes.
- Troba Identificador del paquet a la llista de propietats.
Recupereu una clau d'API d'iOS
Un cop hàgiu registrat una versió d'iOS i hagueu proporcionat un identificador de paquet, podeu recuperar la clau API des de la pàgina de registre de l'aplicació Iniciar sessió amb Amazon. Haureu de col·locar aquesta clau API a la llista de propietats del vostre projecte. Fins que no ho feu, l'aplicació no estarà autoritzada per comunicar-se amb el servei d'autorització d'inici de sessió amb Amazon.
1. Aneu a https://login.amazon.com.
2. Feu clic Consola d'aplicacions.
3. En el Aplicacions , feu clic a la vostra aplicació.
4. Cerqueu la vostra aplicació iOS a la secció Configuració d'iOS secció. Si encara no heu registrat cap aplicació per a iOS, consulteu Afegiu una aplicació per a iOS a Security Profile.
5. Feu clic Genereu un valor de clau API. Una finestra emergent mostrarà la vostra clau API. Per copiar la clau, feu clic a Seleccioneu Tot per seleccionar tota la tecla.
Nota: El valor de la clau API es basa, en part, en el temps que es genera. Per tant, els següents valors de claus de l'API que genereu poden diferir de l'original. Podeu utilitzar qualsevol d’aquests valors clau de l’API a la vostra aplicació, ja que tots són vàlids.
6. Vegeu Afegiu la vostra clau API a la llista de propietats de l'aplicació per obtenir instruccions sobre com afegir la clau API a la vostra aplicació per a iOS
Creació d’un inici de sessió amb Amazon Project
En aquesta secció, aprendreu a crear un nou projecte Xcode per iniciar sessió amb Amazon i configurar el projecte.
Vegeu els temes següents:
- Creeu un nou inici de sessió amb Amazon Project
- Instal·leu l'inici de sessió amb la biblioteca d'Amazon
- Afegiu la vostra clau API a la llista de propietats de l'aplicació
- Afegeix a URL Esquema de la llista de propietats de la vostra aplicació
- Afegiu una excepció de seguretat de transport d'aplicacions per a Amazon a la vostra aplicació Llista de propietats
NOTA: Aquest nou pas es requereix actualment quan es desenvolupa amb l'SDK de iOS 9 - Afegiu un inici de sessió amb el botó Amazon a la vostra aplicació
Creeu un nou inici de sessió amb Amazon Project
Si encara no teniu cap projecte d'aplicació per utilitzar Iniciar sessió amb Amazon, seguiu les instruccions següents per crear-ne un. Si teniu una aplicació existent, aneu a la secció Instal·la l'inici de sessió amb la biblioteca d'Amazon.
- Llançament Xcode.
- Si se us presenta un Benvingut a Xcode diàleg, seleccioneu Creeu un nou projecte Xcode.
En cas contrari, des del File menú, seleccioneu Nou i Projecte. - Seleccioneu el tipus de projecte que voleu crear i feu clic A continuació.
- Introduïu a Nom del producte i a Identificador de l'empresa. Tingueu en compte el vostre Identificador del paquet, i feu clic A continuació.
- Seleccioneu una ubicació on emmagatzemar el vostre projecte i feu clic a Crear.
Ara tindreu un nou projecte que podeu utilitzar per trucar a Iniciar sessió amb Amazon.
Instal·leu l'inici de sessió amb la biblioteca d'Amazon
Si encara no heu baixat l'inici de sessió amb Amazon SDK per a iOS, consulteu Instal·leu l'inici de sessió amb Amazon SDK per a iOS.
Un projecte d'inici de sessió amb Amazon ha de vincular el fitxer Inicieu sessió amb Amazon.framework i Seguretat.marc biblioteques. També haureu de configurar el camí de cerca del marc per trobar l'inici de sessió amb capçaleres d'Amazon
- Amb el projecte obert a Xcode, seleccioneu el fitxer Marcs carpeta, feu clic a File al menú principal i, a continuació, seleccioneu Afegeix Files a “Projecte”.
- Al quadre de diàleg, seleccioneu Inicieu sessió amb Amazon.framework i feu clic a Afegeix.
Si heu utilitzat la biblioteca Inicia sessió amb Amazon 1.0, suprimiu el directori login-with-amazon sdk i login-with-amazon-sdk.a de la carpeta Frameworks. Feu clic a Edita des del menú principal i seleccioneu Suprimeix. - Seleccioneu el nom del vostre projecte a Navegador de projectes.
El Editor de projectes apareixerà a l'àrea de l'editor de l'espai de treball Xcode. - Feu clic al nom del projecte a sota objectius, i seleccioneu Fases de construcció. Amplieu Link Binary amb biblioteques i feu clic al signe més per afegir una biblioteca.
- Al quadre de cerca, introduïu Seguretat.marc. Seleccioneu Security.framework i feu clic Afegeix.
- Al quadre de cerca, introduïu SafariServices.framework. Seleccioneu SafariServices.framework i feu clic Afegeix.
- Al quadre de cerca, introduïu CoreGraphics.framework. Seleccioneu CoreGraphics.framework i feu clic Afegeix
- Seleccioneu Configuració de la construcció. Feu clic a Tot per view tots els paràmetres.
- Sota Cerca de camins, assegureu-vos que el Inicieu sessió amb Amazon.framework es troba al directori Camins de cerca de marcs.
Per exampLI:
Si heu utilitzat la biblioteca Iniciar sessió amb Amazon 1.0, podeu eliminar qualsevol referència al camí d'accés de la biblioteca 1.0 a Camins de cerca de capçaleres or Camins de cerca de biblioteca. - Des del menú principal, feu clic Producte i seleccioneu Construir. La compilació s'hauria de completar correctament.
Abans de construir el vostre projecte, si heu utilitzat la biblioteca Inicia sessió amb Amazon 1.0, substituïu #import “AIMobileLib.h”, #import “AIAuthenticationDelegate.h”, or #importar "AIError.h" a la vostra font files amb #importar
.
Inicieu sessió ambAmazon.h inclou tot l'inici de sessió amb capçaleres d'Amazon alhora.
Afegiu la vostra clau API a la llista de propietats de l'aplicació
Quan registreu la vostra aplicació iOS amb Iniciar sessió amb Amazon, se us assignarà una clau API. Es tracta d’un identificador que la Biblioteca mòbil d’Amazon utilitzarà per identificar la vostra aplicació al servei d’autorització Iniciar sessió amb Amazon. L'Amazon Mobile Library carrega aquest valor en temps d'execució des del valor de la propietat de la clau API a la llista de propietats d'informació de la vostra aplicació.
- Amb el projecte obert, seleccioneu el fitxer Donant suport Files i seleccioneu la carpeta -Info.plist file (on és el nom del vostre projecte). Això hauria d'obrir la llista de propietats per editar:
- Assegureu-vos que cap de les entrades estigui seleccionada. A continuació, feu clic al menú principal Editor, i Afegeix un element. Entra APIKey i premeu Entra.
- Feu doble clic a sota de Valor per afegir un valor. Enganxeu la vostra clau API com a valor.
Afegeix a URL Esquema de la llista de propietats de la vostra aplicació
Quan l'usuari iniciï la sessió, se li mostrarà una pàgina d'inici de sessió d'Amazon. Per tal que la vostra aplicació rebi la confirmació del seu inici de sessió, heu d'afegir un URL esquema perquè el web pàgina pot redirigir de nou a la vostra aplicació. El URL s'ha de declarar com amzn- (per exampel, amzncom.example.app). Per obtenir més informació, vegeu Utilitzant URL Esquemes per comunicar-se amb les aplicacions a developer.apple.com.
- Amb el projecte obert, seleccioneu el fitxer Donant suport Files i seleccioneu la carpeta -Info.plist file (on és el nom del vostre projecte). Això hauria d'obrir la llista de propietats per editar:
- Assegureu-vos que cap de les entrades estigui seleccionada. A continuació, feu clic al menú principal Editor, i Afegeix un element. Introduïu o seleccioneu URL tipus i premeu Entra.
- Expandir URL tipus revelar Item 0. Seleccioneu Item 0 i, al menú principal, feu clic a Editor i Afegeix un element. Introduïu o seleccioneu URL Identificador i premeu Entra.
- Seleccioneu Tema 0 sota URL Identificador i feu doble clic a la columna Valor per afegir un valor. El valor és el vostre identificador de paquet. Podeu trobar el vostre identificador de paquet a la llista de propietats com a identificador de paquet.
- Seleccioneu Tema 0 sota URL tipus i, al menú principal, feu clic a Editor i Afegeix un element. Introduïu o seleccioneu URL Esquemes i premeu Retorn.
- Seleccioneu Tema 0 sota URL Esquemes i feu doble clic a sota de Valor per afegir una columna valor. El valor és el vostre identificador de paquet amzn- prefixat (per exampel, amzn com.example.app). Podeu trobar el vostre identificador de paquet com a Identificador del paquet a la llista de propietats.
Afegiu una excepció de seguretat de transport d'aplicacions per a Amazon a la vostra aplicació
Llista de propietats
A partir d'iOS 9, Apple aplica la seguretat del transport d'aplicacions (ATS) per a les connexions segures entre una aplicació i web serveis. El punt final (api.amazon.com) amb què interactua l’Inici de sessió amb Amazon SDK per intercanviar informació encara no s’ajusta a ATS. Afegiu una excepció per api.amazon.com per permetre una comunicació perfecta entre l'SDK i el servidor d'Amazon.
- Amb el projecte obert, seleccioneu el fitxer Donant suport Files i seleccioneu la carpeta -Info.plist file (on és el nom del vostre projecte). Això hauria d'obrir la llista de propietats per editar:
- Assegureu-vos que cap de les entrades no és A continuació, feu clic al menú principal Editor, i Afegeix un element. Introduïu o seleccioneu NSAppTransportSecurity i premeu Entra.
- Expandir NSAppTransportSecurity i, al menú principal, feu clic a Editor i Afegeix un element. Introduïu o seleccioneu NSExceptionDomains i premeu Entra.
- Expandir NSExceptionDomains i, al menú principal, feu clic a Editor i Afegeix un element. Entreu a amazon.com i premeu Entra.
- Expandir amazon.com i, al menú principal, feu clic a Editor i Afegeix un element.Entrada NSExceptionRequiresForwardSecrecy i premeu Entra.
- Seleccioneu NSExceptionRequiresForwardSecrecy i feu doble clic a sota de Valor per afegir una columna Seleccioneu a Tipus of booleà i a Valor of NO.
L’inici de sessió amb Amazon proporciona diversos botons estàndard que podeu utilitzar per demanar als usuaris que inicien sessió des de la vostra aplicació. En aquesta secció es detallen els passos per descarregar un inici de sessió oficial amb imatge d’Amazon i emparellar-lo amb un botó UIB d’iOS
- Afegiu un botó UIB estàndard a la vostra aplicació.
Per obtenir tutorials i informació sobre com afegir un botó a una aplicació, consulteu Creació i configuració View Objectes i Comenceu a desenvolupar aplicacions per a iOS avui mateix a developer.apple.com. - Afegeix el Toca a l'interior esdeveniment per al botó d'un mètode anomenat onLoginButtonClicked. Deixeu la implementació en blanc per ara. El Creació i Configuració View Objectes i Comenceu a desenvolupar aplicacions per a iOS avui mateix Els documents a apple.com inclouen passos per afegir un esdeveniment de botó.
- Trieu una imatge de botó.
Consulteu el nostre inici de sessió amb Amazon Pautes d’estil per obtenir una llista de botons que podeu utilitzar a la vostra aplicació. Descarregueu una còpia del fitxer LWA_for_iOS.zip file. Cerqueu el botó preferit tant als directoris 1x com a 2x i extracteu-lo del zip. Extraieu la versió _Premeu el botó si voleu mostrar el botó en un estat seleccionat. - Afegiu les imatges al vostre projecte.
a. A Xcode, amb el projecte carregat, feu clic a File des del menú principal i seleccioneu Afegeix Files per "projectar".
b. Al quadre de diàleg, seleccioneu la imatge del botó file(s) que heu baixat i que heu fet clic Afegeix.
c. Ara els botons haurien d'estar al projecte al directori del projecte. Moveu-los a la pàgina de suport Filesfolder. - Afegiu la imatge al botó.
Per habilitar la imatge del botó, podeu modificar l'atribut del botó o utilitzar el botó setImage: forState mètode a Botó UIB objecte. Seguiu aquests passos per modificar l'atribut d'imatge del botó:
a. Obriu el guió gràfic de la vostra aplicació.
b. Seleccioneu el botó del vostre guió gràfic fent clic o seleccionant-lo a la secció View Controlador Arbre d’escena.
c. En el Utilitats obriu la finestra Inspector d'atributs.
d. A la part superior de l'Inspector d'atributs, configureu el botó Tipus de sistema a Sistema.
e. Al segon grup de paràmetres, seleccioneu Predeterminat per a Configuració d'estat.
f. Al segon grup de paràmetres, desplegueu el paràmetre Imatge.
g. Seleccioneu el gràfic del botó Inicia sessió amb Amazon que heu afegit al projecte. No seleccioneu la versió 2x: es carregarà automàticament en dispositius de visualització d'alta densitat (Retina).
h. Establiu la mateixa imatge per a la configuració de fons.
i. Si voleu especificar una versió premuda del botó, seleccioneu Seleccionat per a configuració d'estat i configureu la imatge a la versió _Premeu del botó.
j. Al tauler d’escriptori, si cal, ajusteu la mida del botó per adaptar-la a la imatge.
Ús de l’SDK per a les API d’iOS
En aquesta secció, afegirà codi al projecte per iniciar la sessió a un usuari amb Iniciar sessió amb Amazon.
Vegeu els temes següents:
- Maneu el botó d’inici de sessió i obteniu Profile Dades
- Cerqueu l’inici de sessió d’usuari a l’inici
- Esborreu l'estat d'autorització i tanqueu la sessió d'un usuari
En aquesta secció s'explica com es pot trucar al fitxer authorizeUserForScopes: delegat: i getProfile: API per iniciar sessió en un usuari i recuperar el seu professionalfile dades. Això inclou crear un fitxer onLoginButtonClicked: oient per al vostre botó d’inici de sessió amb Amazon.
- Afegiu l'inici de sessió amb Amazon al vostre projecte iOS. Consulteu Instal·lar l'inici de sessió amb la biblioteca d'Amazon.
- Importeu l’accés amb l’API d’Amazon al vostre origen file.
Per importar l'inici de sessió amb l'API d'Amazon, afegiu el següent #importacions a la vostra font file:#import - Crea el AMZNAuthorizeUserDelegateclass per implementar
AIAuthenticationDelegate.
Quan authorizeUserForScopes: delegat: completarà, es cridarà al requestDidSucceed: or requestDidFail: mètode en un objecte que implementa el fitxer AIAuthenticationDelegate protocol.@interface AMZNAuthorizeUserDelegate: NSObject @final Per a més informació, vegeu Treballar amb protocols a developer.apple.com.
- Truca authorizeUserForScopes: delegat: in onLoginButtonClicked.
Si heu seguit els passos indicats a Afegiu un inici de sessió amb el botó Amazon a la vostra aplicació, hauríeu de tenir un onLoginButtonClicked: mètode enllaçat a un botó d'inici de sessió amb Amazon. En aquest mètode, truqueu authorizeUserForScopes: delegat: a demaneu a l'usuari que iniciï la sessió i autoritzeu la vostra sol·licitud.
Aquest mètode permetrà a l'usuari iniciar la sessió i consentir la informació sol·licitada d'una de les maneres següents:
1.) Canvia a web view en un context segur (si l'aplicació Amazon Shopping està instal·lada al dispositiu)
2.) Canvia a Safari View Controlador (a iOS 9 i versions posteriors)
3.) Canvia al navegador del sistema (a iOS 8 i versions anteriors)
El context segur de la primera opció està disponible quan s’instal·la l’aplicació Amazon Shopping al dispositiu. Si l’usuari ja ha iniciat la sessió a l’aplicació Amazon Shopping, la pàgina d’inici de sessió s’omet i dóna lloc a Inici de sessió únic (SSO) experiència.Quan la vostra aplicació està autoritzada, està autoritzada per a un o més conjunts de dades coneguts com a àmbits. El primer paràmetre és un conjunt d’àmbits que inclouen les dades d’usuari que sol·liciteu a Inicieu la sessió amb Amazon. La primera vegada que un usuari iniciï la sessió a la vostra aplicació, se li mostrarà una llista de les dades que sol·liciteu i se us demanarà aprovació. L’inici de sessió amb Amazon admet actualment tres àmbits: profile, que conté el nom de l'usuari, l'adreça de correu electrònic i l'identificador del compte d'Amazon; profile:ID d'usuari, que només conté l'identificador del compte d'Amazon; i Codi Postal, que conté el codi postal / postal de l'usuari.
El segon paràmetre a authorizeUserForScopes: delegat: és un objecte que implementa el fitxer AIAuthenticationDelegateprotocol, en aquest cas una instància de AMZNAuthorizeUserDelegate classe.- (IBAction) onLogInButtonClicked: (id) remitent {
// Feu una autorització de trucada a l'SDK per obtenir un testimoni d'accés segur
// per a l'usuari.
// Mentre feu la primera trucada, podeu especificar el mínim bàsic
// àmbits necessaris.// Sol·licitud d'ambdós àmbits per a l'usuari actual.
NSArray * requestScopes =
[NSArray arrayWithObjects: @ ”profile”, @” Postal_code ”, nul];AMZNAuthorizeUserDelegate * delegat =
[AIMobileLib authorizeUserForScopes: requestScopes delegat: delegat];
[[AMZNAuthorizeUserDelegate alloc] initWithParentController: self];Afegiu la capçalera d'implementació del delegat a la classe que crida
authorizeUserForScopes :. Per exampLI:#import “AMZNAuthorizeUserDelegate.h” - Crea un AMZNGetProfileDelegat.
AMZNGetProfileDelegats el nostre nom per a una classe que implementa el
AIAuthenticationDelegateprotocol, i processarà el resultat del fitxer getProfile: anomenada. M'agrada authorizeUserForScopes: delegat :, getProfile: admet el requestDidSucceed: i requestDidFail: mètodes de protocol. requestDidSucceed: rep un APIResult objecte amb profile dades a la propietat del resultat. requestDidFail: rep un AIError objecte amb informació sobre l'error a la propietat d'error.
Per crear una classe delegada a partir d'una declaració de classe normal, importeu
AIAuthenticationDelegate.hand afegiu el protocol a la declaració a la capçalera de la vostra classe file:#import @interface AMZNGetProfileDelegat: NSObject @end - Implementar requestDidSucceed: per a teu AMZNAuthorizeUserDelegate. In requestDidSucceed :, truca getProfile: per recuperar el client professionalfile. getProfile:, com authorizeUserForScopes: delegate :, utilitza el protocol AIAuthenticationDelegate.
- (void) requestDidSucceed: (APIResult *) apiResult {
// El vostre codi després que l'usuari autoritzi la sol·licitud
// àmbits sol·licitats.// Carrega nova view controlador amb informació d’identificació de l’usuari
// ja que l'usuari ha iniciat la sessió correctament.AMZNGetProfileDelegat * delegat =
[[AMZNGetProfileDelegar alloc] initWithParentController:parentViewControlador] autorelease];
[AIMobileLib getProfile: delegat];
}Afegiu la capçalera d'implementació del delegat a la classe que crida getProfile:. ForexampLI:
#import "AMZNGetProfileDelegat.h ” - Implementar requestDidSucceed: pel teu AMZNGetProfileDelegat.
requestDidSucceed: té dues tasques principals: recuperar el professionalfile dades de la APIResult, i passar les dades a la IU.
Per recuperar el professionalfile dades de la APIResult, accediu a la propietat del resultat. Per a un getProfile: resposta, aquesta propietat contindrà un diccionari de valors de propietats per a l'usuari profile propietats. El profile les propietats són nom, correu electrònic, i user_id per als professionalsfile abast i
codi_postal per al codi_postal abast.- (void) requestDidSucceed: (APIResult *) apiResult {
// Fes-te professionalfile sol·licitud reeixida. Desempaqueteu el professionalfile informació
// i passar-lo al pare view controladorNSString * name = [(NSDictionary *) apiResult.result
objectForKey: @ "nom"];
NSString * email = [(NSDictionary *) apiResult.result
objectForKey: @ "correu electrònic"];
NSString * user_id = [(NSDictionary *) apiResult.result
objectForKey: @ ”user_id”];
NSString * postal_code = [(NSDictionary *) apiResult.result
objectForKey: @ "postal_code"];// Passa les dades a view controlador
} - Implementar requestDidFail: pel teu AMZNGetProfileDelegat.
requestDidFail: inclou un Error APIE objecte que conté detalls sobre l'error. showLogInPageis un mètode hipotètic que restabliria el main view per mostrar el botó Inicia sessió amb Amazon.- (void) requestDidFail: (APIError *) errorResponse {
// Obteniu Profile la sol·licitud ha fallat per a profile abast.
// Si el codi d'error = kAIApplicationNotAuthorized,
// permetre a l'usuari tornar a iniciar la sessió.
if (errorResponse.error.code == kAIApplicationNotAuthorized) {
// Mostra el botó d'autoritzar l'usuari.
[pareViewControlador showLogInPage];
}
altrament {
// Manejar altres errors
[[[[UIAlertView alloc] initWithTitle: @ ”” missatge: [NSString
stringWithFormat: @ "S'ha produït un error amb el missatge:% @",
errorResponse.error.message] delegat: nul
cancelButtonTitle: @ ”OK” otherButtonTitles: nul] llançament automàtic] mostra];
}
} - Implementar requestDidFail: per a teu AMZNAuthorizeUserDelegate.
- (void) requestDidFail: (APIError *) errorResponse {
NSString * message = errorResponse.error.message;
// El teu codi quan falla l'autorització. [[[[UIAlertView alloc] initWithTitle: @ ”” missatge: [NSString
stringWithFormat: @ "Ha fallat l'autorització d'usuari amb el missatge:% @", errorResponse.error.message] delegat: nul
cancelButtonTitle: @ ”OK” otherButtonTitles: nul] llançament automàtic] mostra];
}10. Implementar aplicació: obertaURL: sourceApplication: anotació: a la classe del vostre projecte que gestiona el fitxer UIApplicationDelegate protocol (per defecte aquest serà el AppDelegateclass al vostre projecte). Quan l'aplicació presenti la pàgina d'inici de sessió d'Amazon i l'usuari completa l'inici de sessió, es redirigirà a l'aplicació mitjançant URL Programa l’aplicació registrada anteriorment. Aquesta redirecció es passa a aplicació: obertaURL: sourceApplication: annotation :, que torna SÍ si el URL s'ha gestionat amb èxit. mànecOpenURL: sourceApplication: és una funció de biblioteca SDK que gestionarà l'inici de sessió amb la redirecció d'Amazon URLs per a tu. Si mànecOpenURL: sourceApplication: retorna SÍ, després el URL es va manejar.
- Aplicació (BOOL): aplicació (UIApplication *)
obertURL: (NSURL *)url
sourceApplication: (NSString *) sourceApplication
anotació: (id) anotació
{
// Transmetre el url a l'SDK per analitzar el codi d'autorització // des del fitxer url.
BOOL isValidRedirectSignInURL =
[Mànec AIMobileLibOpenURL:url
sourceAppli cation: sour ceApplicati on);
if (! isValidRedirect Si gnlnURL)
tornar NO;
// És possible que l'aplicació també vulgui gestionar-la url tornar SÍ;
}NOTA: Aquest mètode està obsolet a iOS 9, però s’hauria d’incloure al vostre projecte per mantenir la compatibilitat amb els usuaris de plataformes anteriors. Per obtenir més informació sobre aplicació: obertaURL: sourceApplication: annotation :, veure Referència de protocol UIApplicationDelegate a developer.apple.com.
Cerqueu l’inici de sessió d’usuari a l’inici
Si un usuari inicia la sessió a la vostra aplicació, la tanca i la reinicia més tard, l'aplicació encara està autoritzada a recuperar dades. L'usuari no ha tancat la sessió automàticament. En iniciar, podeu mostrar a l’usuari com ha iniciat la sessió si la vostra aplicació encara està autoritzada. En aquesta secció s'explica com s'utilitza
getAccessTokenForScopes: withOverrideParams: delegat: per veure si l'aplicació encara està autoritzada.
- Crea un AMZNGetAccessTokenDelegate classe. AMZNGetAccessTokenDelegateimplements el AIAuthenticationDelegate i processarà el resultat del fitxer
getAccessTokenForScopes: withOverrideParams: delegat: truca. AIAuthenticationDelegate conté dos mètodes, requestDidSucceed: i requestDidFail :. requestDidSucceed: rep un APIResult objecte amb dades de testimoni, mentre que requestDidFail: rep un Error APIE objecte amb informació sobre l’error.#import @interface AMZNGetAccessTokenDelegate: NSObject
@final
Afegiu la capçalera d'implementació del delegat a la classe que crida
getAccessTokenForScopes: withOverrideParams: delegat :. ForexampLI:#import “AMZNGetAccessTokenDelegate.h” - En iniciar l'aplicació, truqueu
getAccessTokenForScopes: withOverrideParams: delegat: per veure si l'aplicació encara està autoritzada. getAccessTokenForScopes: withOverrideParams: delegat: recupera el testimoni d'accés en brut que utilitza Iniciar sessió amb Amazon per accedir a un client professionalfile. Si el mètode té èxit, l'aplicació continua autoritzada i es fa una trucada a getProfile: hauria de tenir èxit. getAccessTokenForScopes: withOverrideParams: delegat: utilitza el AIAuthenticationDelegate protocol de la mateixa manera que authorizeUserForScopes: delegat :. Passeu l'objecte que implementa el protocol com a paràmetre delegat.- (void) checkIsUserSignedIn {
AMZNGetAccessTokenDelegate * delegat =
[[[AMZNGetAccessTokenDelegate alloc] initWithParentController:self] autorelease];
NSArray * requestScopes =
[NSArray arrayWithObjects: @ ”profile”, @” Postal_code ”, nul]; [AIMobileLib getAccessTokenForScopes: requestScopes withOverrideParams: nul delegat: delegat];
} - Implementar requestDidSucceed: al teu AMZNGetAccessTokenDelegate. requestDidSucceed: té una tasca: trucar getProfile:. Aquest exampli crida getProfile: utilitzant el mateix oient que heu declarat a la secció anterior (vegeu els passos 6-8).
#import "AMZNGetProfileDelegat.h ”
#import- (void) requestDidSucceed: (APIResult *) apiResult {
// El vostre codi per utilitzar el testimoni d’accés va aquí.// Com que l’aplicació té autorització per als nostres àmbits, podem
[AIMobileLib getProfile: delegat];
// obtenir l’usuari professionalfile.
AMZNGetProfileDelegat * delegat = [[[AMZNGetProfileDelegat assign] initWithParentController: pareViewControlador] autorelease];
} - Implementar requestDidFail: al teu AMZNGetAccessTokenDelegate.
requestDidFail: inclou un Error APIE objecte que conté detalls sobre l'error. Si rebeu un error, podeu restablir el principal view per mostrar el botó Inicia sessió amb Amazon.- (void) requestDidFail: (APIError *) errorResponse {
// El vostre codi per gestionar la recuperació fallida del testimoni d'accés.
// Si el codi d'error = kAIApplicationNotAuthorized, permeteu a l'usuari
// per tornar a iniciar la sessió.
if (errorResponse.error.code == kAIApplicationNotAuthorized) {
// Mostra l'inici de sessió amb el botó d'Amazon.
}
altrament {
// Manejar altres errors
[[[[UIAlertView alloc] initWithTitle: @ ”” missatge: [NSString
stringWithFormat: @ ”S'ha produït un error amb el missatge:% @”, errorResponse.error.message] delegat: nul
cancelButtonTitle:@”D'acord” otherButtonTitles:nil] autorlease] show];
}
}
El clearAuthorizationState: El mètode esborrarà les dades d'autorització de l'usuari del fitxer AIMobileLib magatzem de dades local. Un usuari haurà de tornar a iniciar la sessió per tal que l’aplicació pugui recuperar el professionalfile dades. Utilitzeu aquest mètode per tancar la sessió d’un usuari o per solucionar problemes d’inici de sessió a l’aplicació.
- Declara un AMZNLoutDelegate. Aquesta és una classe que implementa el
AIAuthenticationDelegateprotocol. Als nostres propòsits, podem heretar la classe de NSObject:
#import @interface AMZNLogoutDelegate NSObject
@final
Afegiu la capçalera d'implementació del delegat a la classe que crida clearAuthorizationState :. Per exampLI:
#import “AMZNLogoutDelegate.h” - Truca clearAuthorizationState :.
Quan un usuari hagi iniciat la sessió correctament, podeu proporcionar un mecanisme de tancament de sessió perquè pugui esborrar les seves dades d'autorització. El vostre mecanisme pot ser un hiperenllaç o un element de menú, però per a aquest cas, per exemple,ampli crearà un logoutButtonClickedmethod per obtenir un botó de tancament de sessió.- (IBAction) logoutButtonClicked: (id) remitent {
AMZNLogoutDelegate* delegate = [[[AMZNLogoutDelegate alloc] initWithParentController:self] autorelease]; [AIMobileLib clearAuthorizationState:delegate];
}L'únic paràmetre de clearAuthorizationState és un AIAuthenticationDelegate que implementa requestDidSucceed: i requestDidFail :.
- Implementar requestDidSucceed :. Aquest mètode es cridarà quan s'esborri la informació de l'usuari. A continuació, hauríeu de mostrar-los com s'ha tancat la sessió.
- (void) requestDidSucceed: (APIResult *) apiResult {
// La vostra lògica addicional després de l'autorització de l'usuari
// estat s’esborra.
[[UIAlertView alloc] initWithTitle: @ "" missatge: @ "Usuari tancat de sessió."
delegat:nil cancelButtonTitle:@"D'acord" otherButtonTitles:nil] mostrar];
} - Implementar requestDidFail :. Aquest mètode es cridarà si per algun motiu la informació de l'usuari no es pot esborrar de la memòria cau. En aquest cas, no els haureu de mostrar com s'ha tancat la sessió.
- (void) requestDidFail: (APIError *) errorResponse {
// No s'ha pogut esborrar la vostra lògica addicional després de l'SDK
// l'estat d'autorització. [[[[UIAlertView alloc] initWithTitle: @ ”” missatge: [NSString
stringWithFormat: @ "Ha fallat la sessió de l'usuari amb el missatge:% @",
errorResponse.error.message] delegat: nul
cancelButtonTitle:@”D'acord” otherButtonTitles:nil] autorlease] show];
}
Proveu la vostra integració
Inicieu l'aplicació en un dispositiu o simulador iOS i confirmeu que podeu iniciar la sessió amb les vostres credencials d'Amazon.com.
Nota: Quan feu proves en simuladors iOS10, és possible que vegeu el missatge d’error APIKey per a l’aplicació no vàlid per a una sol·licitud authorizeUserForScopes o Codi d’error desconegut per a una sol·licitud clearAuthorizationState. Això és un error conegut amb Apple que es produeix quan l'SDK intenta accedir al clauer. Fins que Apple no resolgui l'error, podeu solucionar-ho si activeu l'ús compartit de claus per a la vostra aplicació a la pestanya Funcions de l'objectiu de la vostra aplicació. Aquest error només afecta els simuladors. Podeu fer proves en dispositius iOS10 reals sense utilitzar cap solució alternativa.
Inicieu la sessió amb la Guia d'inici d'Amazon per a la versió 2.1.2 d'iOS - Baixa [optimitzat]
Inicieu la sessió amb la Guia d'inici d'Amazon per a la versió 2.1.2 d'iOS - Descarregar