Cunnettatevi cù Amazon Guida introduttiva per iOS
Cunnette vi cù Amazon: Guida introduttiva per iOS
Copyright © 2016 Amazon.com, Inc., o i so affiliati. Tutti i diritti riservati.
Amazon è u logu Amazon sò marche di Amazon.com, Inc. o di i so affiliati. Tutti l'altri marchi chì ùn sò micca di pruprietà di Amazon sò pruprietà di i so rispettivi pruprietari.
Principià per iOS
In questa guida vi mostreremu cumu aghjunghje Login cù Amazon à a vostra app iOS. Dopu avè cumplettatu sta guida duvete avè un Login di cunnessione cù u buttone Amazon in a vostra app per permette à l'utilizatori di cunnettassi cù e so credenziali Amazon
Stallà Xcode
U login cun Amazon SDK per iOS hè furnitu da Amazon per aiutà à aghjunghje Login cun Amazon à a vostra applicazione iOS. U SDK hè destinatu à esse adupratu cù l'ambiente di sviluppu Xcode. U SDK supporta l'applicazioni in esecuzione in iOS 7.0 è più tardi cù ARMv7, ARMv7s, ARM64, i386, andx86_64.
Pudete installà Xcode da u Mac App Store. Per più infurmazione, vedi Xcode: Novità nantu à developer.apple.com.
Dopu chì Xcode hè installatu, pudete Installa u Login cun Amazon SDK per iOS è Corri a Sampl'App, cum'è discrittu quì sottu.
Installa u Login cun Amazon SDK per iOS
U login cun Amazon SDK per iOS vene in dui pacchetti. U primu cuntene a biblioteca iOS è a documentazione di supportu. U secondu cuntene cum'èampl'applicazione chì permette à un utilizatore di cunnettà si è view u so profile dati.
Se ùn avete micca installatu Xcode, vedi l'istruzzioni in u Installa Xcode sezione sopra.
- Scaricate LoginWithAmazonSDKForiOS.zip è estrae u files à un annuariu in u vostru discu duru.
Duvete vede un LoginWithAmazon.framework annuariu. Questu cuntene u login cù a biblioteca Amazon.
À u livellu superiore di u zip hè un LoginWithAmazon.doc set directory. Questu cuntene a documentazione API. - Vede Installa u Login cù Amazon Library per struzzioni nantu à cumu aghjunghje a biblioteca à un prughjettu iOS.
Quandu u Login cun Amazon SDK per iOS hè installatu, pudete Crea un Novu Login cù u Prughjettu Amazon dopu Registrazione cù Login cù Amazon.
Corri a Sampl'App
Per fà corre u sampl'applicazione, apre u sample in Xcode.
- Scaricate SampleLoginWithAmazonAppForiOS.zip è copià u
SampleLoginWithAmazonAppForiOS directory in u vostru cartulare Documents. - Principià Xcode. Se u dialogu di Benvenutu à Xcode apparisce, fate cliccà Apri Altru. Altrimenti, cliccate nantu à u menu principale File è selezziunate Open.
- Sceglite u cartulare Documenti, è selezziunate
SampleLoginWithAmazonAppForiOS / LoginWithAmazonSample / LoginWithAmazonSample.xcodeproj. Cliccate Apertu. - U sampU prugettu duverebbe avà caricà. Quandu hè finitu, sceglite Pruduttu da u menu principale è selezziunate Corri
Registrazione cù Login cù Amazon
Prima di pudè aduprà Login cù Amazon nantu à a websitu o in una app mobile, duvete registrà una applicazione cù Login cù Amazon. U vostru login cù l'applicazione Amazon hè a registrazione chì cuntene infurmazioni basi nantu à a vostra attività, è infurmazioni nantu à ognunu websitu o app mobile chì create chì supporta u login cù Amazon. Questa infurmazione cummerciale hè visualizata à l'utilizatori ogni volta chì utilizanu Login cù Amazon in u vostru websitu o app mobile. L'utilizatori vedenu u nome di a vostra applicazione, u vostru logu, è un ligame per a vostra pulitica di privacy. Queste tappe dimostranu cume registrà un Login cù l'applicazione Amazon è aghjunghje una app iOS à quellu account.
Vede i seguenti temi
- Registrate u vostru Connessione cù l'Applicazione Amazon
- Aghjunghjite una App iOS à un Pro di Sicurezzafile
- ID iOS Bundle è Chjave API
o Determinate un Identificatore Bundle per una App iOS
o Recupera una Chjave API iOS
Registrate u vostru Connessione cù l'Applicazione Amazon
- Andà à https://login.amazon.com.
- Se avete firmatu per Login cù Amazon prima, cliccate App Console. Altrimenti, cliccate Firma.
Sarete redirigitu à Seller Central, chì gestisce a registrazione di l'applicazione per Accedi cù Amazon. S'ellu hè a prima volta cù Seller Central, vi sarà dumandatu di creà un account Seller Central. - Cliccate Registrate una nova applicazione. U Registrate a vostra Applicazione Cumpariscerà a forma:
a. In u Registru A vostra forma di candidatura, inserite un Nome è a Descrizzione per a vostra applicazione.
U Nome hè u nome affissatu nantu à a pantalla di accunsentu quandu l'utilizatori accettanu di sparte infurmazioni cù a vostra applicazione. Stu nome hè appiicatu à Android, iOS è webversioni di u situ di a vostra dumanda.
b. Inserite un Avvisu di Privacità URL per a vostra applicazione.
L'Informazioni di Privacità URL hè a situazione di a politica di riservatezza di a vostra impresa o di l'applicazione (per esample, http: //www.example.com/privacy.html). Stu ligame hè visualizatu à l'utilizatori nantu à a pantalla di accunsentu.
c. Se vulete aghjunghje a Logo Image per a vostra applicazione, cliccate Sfoglia è localizza l'imaghjini applicabili.
Stu logò hè visualizatu nantu à u screnu di cunnessione è d'accunsentu per raprisentà a vostra impresa o websitu. U logò serà riduttu à 50 pixel di altezza s'ellu hè più altu di 50 pixel; ùn ci hè limitazione per a larghezza di u logò. - Cliccate Salvà. U vostru sampa registrazione deve esse simile à questu:
Dopu chì i vostri paràmetri di l'applicazione di basa sò salvati, pudete aghjunghje paràmetri per specifichi websiti è app mobile chì utilizeranu questu Login cun account Amazon.
Se diverse versioni di a vostra app anu ID di fasciu sfarente, cume per una o più versioni di prova è una versione di produzione, ogni versione richiede a so Chjave API. Da u Settings iOS di a vostra app, cliccate nantu à u Aghjunghje Chjave API buttone per creà chjavi addiziunali per a vostra app (una per versione).
Aghjunghjite una App iOS à un Pro di Sicurezzafile
Dopu chì i vostri paràmetri di l'applicazione di basa sò salvati, pudete aghjunghje paràmetri per specifichi websiti è app mobile chì utilizeranu questu Login cun account Amazon.
Per registrà una App iOS, duvete specificà l'identificatore Bundle per u prughjettu di l'applicazione. U login cun Amazon utilizarà l'ID di bundle per generà una chjave API. A chjave API darà l'accessu à a vostra app per u login cù u serviziu d'autorizazione Amazon. Seguitate ste tappe per aghjunghje una app iOS à u vostru contu:
- Da u screnu Applicazioni, cliccate Impostazioni iOS. Se avete dighjà una app iOS registrata, cercate u Aghjunghje Chjave API buttone in u Settings iOS sezione.
U Applicazione iOS Cumpariscerà a forma di Dettagli:
- Entre in Etichetta di a vostra App iOS. Questu ùn deve micca esse u nome ufficiale di a vostra app. Identifica simpliciamente questa app iOS particulare trà e app è websiti arregistrati in u vostru Connessione cù l'applicazione Amazon.
- Entre u vostru ID Bundle. Questu deve currisponde à l'identificatore di u pacchettu di u vostru prughjettu iOS. Per determinà u vostru identificatore di bundle, aprite u prugettu in Xcode. Apri a lista di pruprietà per u prugettu ( -Info.plist) in u Navigatore di Prughjettu. L'identificatore Bundle hè una di e pruprietà in a lista.
- Cliccate Salvà.
ID iOS Bundle è Chjave API
L'identificatore Bundle hè unicu per ogni app iOS. U login cun Amazon utilizza u Bundle ID per custruisce a vostra Chjave API. A Chjave API permette à u login cù u serviziu d'autorizazione Amazon di ricunnosce a vostra app.
Determinate un Identificatore Bundle per una App iOS
- Apertu u vostru prughjettu di app in Xcode.
- Aprite u Lista di pruprietà d'infurmazioni per u prugettu ( -Info.plist) in u Navigatore di Prughjettu.
- Truvà Identificatore di bundle in a lista di e pruprietà.
Recupera una Chjave API iOS
Dopu avè registratu una versione iOS è furnitu un ID Bundle, pudete recuperà a chjave API da a pagina di registrazione per u vostru Login cù l'applicazione Amazon. Duvete mette quella chjave API in a lista di pruprietà di u vostru prugettu. Finu à quandu, l'app ùn serà micca autorizata à cumunicà cù u login cù u serviziu d'autorizazione Amazon.
1. Andà à https://login.amazon.com.
2. Cliccate App Console.
3. In lu Apps scatula, cliccate nantu à a vostra applicazione.
4. Truvate a vostra app iOS sottu a Settings iOS rùbbrica. Se ùn avete micca digià registratu una app per iOS, vedi Aghjunghjite una App iOS à un Pro di Sicurezzafile.
5. Cliccate Generate u valore di chjave API. Una finestra popup vi mostrarà a vostra chjave API. Per cupià a chjave, cliccate Selezziunà tuttu per selezziunà a chjave sana.
Nota: U Valore Chjave API si basa, in parte, nantu à u tempu chì hè generatu. Cusì, u Valore (i) Chjave API sussegwenti chì generate pò differisce da l'uriginale. Pudete aduprà qualsiasi di questi Valori Chjave API in a vostra app perchè sò tutti validi.
6. Vede Aghjunghjite a Vostra Chjave API à a Vostra Lista di Proprietà App per struzzioni annantu à l'aghjuntu di a chjave API à a vostra app iOS
Crià un Login cun Amazon Project
In questa sezione, amparerai à creà un novu prughjettu Xcode per Accedi cù Amazon è cunfigurà u prugettu.
Vede i seguenti temi:
- Crea un Novu Login cù u Prughjettu Amazon
- Installa u Login cù Amazon Library
- Aghjunghjite a Vostra Chjave API à a Vostra Lista di Proprietà App
- Aghjunghjite a URL Schema per a vostra Lista di Proprietà App
- Aghjunghjite una Eccezione di Sicurezza di Trasportu App per Amazon à a Vostra App Lista di pruprietà
NOTA: Stu novu passu hè attualmente necessariu quandu si sviluppa nantu à u SDK iOS 9 - Aghjunghjite un Login cù u Buttone Amazon à a Vostra App
Crea un Novu Login cù u Prughjettu Amazon
Se ùn avete micca ancu un prughjettu di app per aduprà Login cù Amazon, seguitate e istruzioni sottu per creà unu. Se avete una app esistente, saltate à a sezione Installate u login cù Amazon Library quì sottu.
- Lanciari Xcode.
- Se vi sò presentati cun un Benvenutu à Xcode dialogu, selezziunà Crea un Novu Prughjettu Xcode.
Altrimenti, da u File menu, selezziunà Novu è Prughjettu. - Sceglite u tippu di prughjettu chì vulete creà è cliccate Dopu.
- Entre a Nome di u produttu è a Identificatore di Cumpagnia. Nota a vostra Identificatore di bundle, è cliccate Dopu.
- Sceglite un locu induve almacenà u vostru prughjettu è cliccate Crià.
Avete avà un novu prughjettu chì pudete aduprà per chjamà Login cù Amazon.
Installa u Login cù Amazon Library
Se ùn avete micca scaricatu l'Accessu cù Amazon SDK per iOS, vedi Installa u Login cun Amazon SDK per iOS.
Un Prughjettu Connessione cù Amazon deve ligà u LoginWithAmazon.framework è Sicurezza.cadratura librerie. Averete ancu bisognu di cunfigurà u percorsu di ricerca di u quadru per truvà l'Accessu cù l'intestazione di Amazon
- Cù u vostru prugettu apertu in Xcode, selezziunate u Frameworks cartulare, cliccate File da u menu principale, è dopu selezziunate Add Files à "Prughjettu".
- In u dialogu, selezziunate LoginWithAmazon.framework è cliccate Add.
Se avete usatu u login cù a libreria Amazon 1.0, sguassate u login-with-amazon sdk directory è login-with-amazon-sdk.a da u cartulare Frameworks. Cliccate Edit da u menu principale è selezziunate Sguassà. - Sceglite u nome di u vostru prugettu in u Navigatore di Prughjettu.
U Editor Editor Cumpariscerà in l'area di l'editore di u spaziu di travagliu Xcode. - Cliccate nantu à u vostru nome di prughjettu sottu Obiettivi, è selezziunate Custruisce Fasi. Expand Link Binariu cù Biblioteche è cliccate nantu à u segnu più per aghjunghje una biblioteca.
- In a casella di ricerca, entre Sicurezza.cadratura. Selezziunà Security.framework è cliccate Add.
- In a casella di ricerca, entre SafariServices.framework. Selezziunà SafariServices.framework è cliccate Add.
- In a casella di ricerca, entre CoreGraphics.framework. Selezziunà CoreGraphics.framework è cliccate Add
- Selezziunà Custruisce Settings. Cliccate Tutti à view tutti i paràmetri.
- Sottu Cerca Percorsi, assicuratevi chì u LoginWithAmazon.framework U repertoriu hè in Percorsi di Ricerca Framework.
Per esampLe:
Se avete usatu u login cù a libreria Amazon 1.0, pudete eliminà qualsiasi riferenzi à u percorsu di a libreria 1.0 in u Percorsi di Ricerca di Intestazione or Percorsi di Ricerca di Biblioteche. - Da u menu principale, cliccate Pruduttu è selezziunate Custruì. A custruzzioni duveria compie cù successu.
Prima di custruisce u vostru prugettu, se avete adupratu u login cù a biblioteca Amazon 1.0, rimpiazzate #import "AIMobileLib.h", #import "AIAuthenticationDelegate.h", or #import "AIError.h" in a vostra surghjente files cun #import
.
LoginWithAmazon.h include tuttu u Login cù i headers di Amazon in una volta.
Aghjunghjite a Vostra Chjave API à a Vostra Lista di Proprietà App
Quandu si registra a vostra applicazione iOS cù Login cù Amazon, vi hè assignata una chjave API. Questu hè un identificatore chì a Libreria Mobile Amazon utilizarà per identificà a vostra applicazione à u Login cù u serviziu d'autorizazione Amazon. A Biblioteca Mobile Amazon carica questu valore in runtime da u valore di pruprietà Chjave API in a Lista di pruprietà d'infurmazioni di a vostra applicazione.
- Cù u vostru prugettu apertu, selezziunate u U sustegnu Files cartulare, dopu selezziunate u -Info.plist file (induve hè u nome di u vostru prugettu). Questu averebbe apre u listinu di pruprietà per edità:
- Assicuratevi chì nessuna di e entrate sia selezionata. Dopu, da u menu principale, cliccate Editore, è Aghjunghje Articulu. Entre APIKey è pressu Entre.
- Doppiu cliccà sottu u Valore colonna per aghjunghje un valore. Incolla a vostra Chjave API cum'è valore.
Aghjunghjite a URL Schema per a vostra Lista di Proprietà App
Quandu l'utilizatore accede, saranu presentati cù una pagina di login di Amazon. Per chì a vostra app ricevi cunferma di u so login, duvete aghjunghje un URL schema per chì u web pagina pò redirige di novu à a vostra app. U URL schema deve esse dichjaratu cum'è amzn- (per esample, amzncom.example.app). Per più infurmazione, vedi Utilizendu URL Schemi per Cumunicà cù l'Apps nantu à developer.apple.com.
- Cù u vostru prugettu apertu, selezziunate u U sustegnu Files cartulare, dopu selezziunate u -Info.plist file (induve hè u nome di u vostru prugettu). Questu averebbe apre u listinu di pruprietà per edità:
- Assicuratevi chì nessuna di e entrate sia selezionata. Dopu, da u menu principale, cliccate Editore, è Aghjunghje Articulu. Entre o selezziunate URL tippi è pressu Entre.
- Espandi URL tippi per revelà Articulu 0. Selezziunà Articulu 0 è, da u menu principale, fate cliccà Editor è Aggiungi Articulu. Entre o selezziunate URL Identificatore è stampa Entre.
- Selezziunà Articulu 0 sottu URL Identificatore è fate doppiu cliccà sottu à a colonna Valore per aghjunghje un valore. U valore hè u vostru ID bundle. Pudete truvà u vostru ID di bundle listatu cum'è identificatore di Bundle in a lista di pruprietà.
- Selezziunà Articulu 0 sottu URL tippi è, da u menu principale, cliccate Editore è Aghjunghje Articulu. Entre o selezziunate URL Schemi è press Enter.
- Selezziunà Articulu 0 sottu URL Schemi è fate doppiu cliccà sottu à u Valore colonna per aghjunghje a valore. U valore hè u vostru ID bundle cù amzn- prepended (per esample, amzn com.example.app). Pudete truvà u vostru ID bundle listatu cum'è Identificatore di bundle in a lista di pruprietà.
Aghjunghjite una Eccezione di Sicurezza di Trasportu App per Amazon à a Vostra App
Lista di pruprietà
Iniziendu cù iOS 9, Apple impone App Security Security (ATS) per cunnessioni sicure trà una app è web servizii. L'endpoint (api.amazon.com) L'accessu cù Amazon SDK interagisce cù u scambiu di informazioni ùn hè ancu conforme à ATS. Aghjunghjite una eccezione per api.amazon.com per attivà una cumunicazione perfetta trà u SDK è u servitore Amazon.
- Cù u vostru prugettu apertu, selezziunate u U sustegnu Files cartulare, dopu selezziunate u -Info.plist file (induve hè u nome di u vostru prugettu). Questu averebbe apre a lista di pruprietà per a mudificazione:
- Assicuratevi chì nimu di e voci sò Dopu, da u menu principale, fate clic Editore, è Aggiungi Articulu. Entre o selezziunate NSAppTransportSecurity è pressu Entre.
- Espandi NSAppTransportSecurity è, da u menu principale, cliccate Editore è Aggiungi Articulu. Entre o selezziunate NSExceptionDomains è pressu Entre.
- Espandi NSExceptionDomains è, da u menu principale, cliccate Editore è Aggiungi Articulu. Entre in amazon.com è stampa Entre.
- Espandi amazon.com è, da u menu principale, cliccate Editore è Aggiungi Articulu.Intrate NSExceptionRequires ForwardSecrecy è pressu Entre.
- Selezziunà NSExceptionRequires ForwardSecrecy è fate doppiu cliccà sottu à u Valore colonna per aghjunghje una Selezziunà a Tipu of Boolean è a Valore of INNÒ.
U login cun Amazon furnisce parechji buttoni standard chì pudete aduprà per incitarà l'utilizatori à accede da a vostra app. Questa sezzione dà passi per scaricà un Login ufficiale cù a maghjina Amazon è l'abbinamentu cù un UIButton iOS.
- Aggiungi un UIButton standard à a vostra app.
Per tutoriali è informazioni nantu à cume aghjunghje un buttone à una app, vedi Creazione è Configurazione View Oggetti è Iniziate a Sviluppà Apps iOS oghje nantu à developer.apple.com. - Aghjunghjite u Ritocca Dentru avvenimentu per u buttone per un metudu chjamatu onLoginButtonCliccatu. Lascià l'implementazione viota per avà. U Crià è Configurazione View Oggetti è Iniziate a Sviluppà Apps iOS oghje I documenti nantu à apple.com includenu passi per aghjunghje un avvenimentu di buttone.
- Sceglite una maghjina di buttone.
Cunsultate u nostru Login cù Amazon Linee guida di Stile per una lista di buttoni chì pudete aduprà in a vostra app. Scaricate una copia di u LWA_per_iOS.zip file. Truvate u vostru buttone preferitu in i direttori 1x è 2x è estratti da u zip. Estrae a versione _Pressata di u vostru buttone se vulete mustrà u buttone in un Statu Sceltu. - Aghjunghjite l'imaghjini à u vostru prugettu.
a. In Xcode, cù u vostru prughjettu caricatu, cliccate File da u menu principale è selezziunate Add Files per "prughjettà".
b. In u dialogu, selezziunate l'imagine di u buttone file(s) chì avete scaricatu è cliccate Add.
c. I buttoni devenu avà esse in u prugettu sottu u vostru cartulare di prughjettu. Spustalli à u Supporting Filesfolder. - Aghjunghjite l'imagine à u vostru buttone.
Per attivà l'immagine per u vostru buttone, pudete mudificà l'attributu di u buttone o aduprà u setImage: perStatu metudu nantu à u UIButton ughjettu. Seguitate ste tappe per mudificà l'attributu di l'immagine per u vostru buttone:
a. Apri u storyboard per a vostra app.
b. Sceglite u buttone in u vostru storyboard cliccendu nantu à ellu o selezziunatu da u View Controller Arburu di scena.
c. In u Utilità finestra, apre u Ispettore di Attributi.
d. In cima di l'ispettore di l'attributi, impostate u Tipu di buttone in Sistema.
e. In u sicondu gruppu di paràmetri, sceglite Default per State Config.
f. In u secondu gruppu di paràmetri, abbandunate u paràmetru Image.
g. Sceglite u login cù u buttone graficu Amazon chì avete aghjuntu à u prugettu. Ùn selezziunate micca a versione 2x: serà caricata automaticamente nantu à dispositivi di visualizazione à alta densità (Retina).
h. Piazzà a listessa maghjina per u paràmetru di Sfondu.
i. Se vulete specificà una versione pressata di u buttone, selezziunate Selezziunatu per a Cunfigurazione di Statu, è fate l'Imagine à a versione _Pressata di u vostru buttone.
j. Nantu à u storyboard, aghjustate a dimensione di u vostru buttone per adattà l'imagine, se necessariu.
Aduprà u SDK per l'API iOS
In questa sezione, aghjunghje u codice à u vostru prughjettu per firmà in un utilizatore cù Login cù Amazon.
Vede i seguenti temi:
- Gestite u Buttone di Cunnessione è Get Profile Dati
- Verificate u login di l'Usuariu à u Startup
- Cancellà u Statu di Autorizazione è Scunnettà un Utente
Questa sezione spiega cume chjamà u authorizeUserForScopes: delegatu: è getProfile: API per accede à un utilizatore è recuperà u so profile dati. Questu include a creazione di un onLoginButtonClicked: ascultatore per u vostru Connessione cù u buttone Amazon.
- Aghjunghjite Login cù Amazon à u vostru prugettu iOS. Vede Installà l'Accessu cù Amazon Library.
- Impurtate u Login cù Amazon API à a vostra surghjente file.
Per impurtà u Login cù Amazon API, aghjunghje i seguenti #impurtanza à a vostra surghjente file:#impurtanza - Crea u AMZNAuthorizeUserDelegateclass à implementà
AIAuthenticationDelegate.
Quandu authorizeUserForScopes: delegatu: compie, chjamerà u requestDidSucceed: or requestDidFail: metudu nantu à un oggettu chì implementa u AIAuthenticationDelegate protocolu.@interface AMZNAuthorizeUserDelegate: NSObject @end Per più infurmazione, vede U travagliu cù Protocolli nantu à developer.apple.com.
- Chjama authorizeUserForScopes: delegatu: in onLoginButtonCliccatu.
Se avete seguitu i passi in Aghjunghjite un Login cù u Buttone Amazon à a Vostra App, duverete avè un onLoginButtonClicked: metudu ligatu à un Login cù u buttone Amazon. In quellu metudu, chjamate authorizeUserForScopes: delegate: à dumandà à l'utilizatore di cunnettà si è autorizà a vostra dumanda.
Stu metudu permetterà à l'utilizatore di firmà è accunsentì à l'infurmazioni richieste in unu di i modi seguenti:
1.) Cambia à web view in un cuntestu sicuru (se l'app Amazon Shopping hè installata à u dispositivu)
2.) Passa à Safari View Controller (in iOS 9 è più tardi)
3.) Passa à u navigatore di u sistema (in iOS 8 è precedenti)
U cuntestu sicuru per a prima opzione hè dispunibule quandu l'app Amazon Shopping hè installata à u dispositivu. Se l'utilizatore hè dighjà cunnessu à l'app Amazon Shopping, a pagina di cunnessione hè saltata, purtendu à a Single Sign-On (SSO) sperienza.Quandu a vostra applicazione hè autorizata, hè autorizata per unu o più set di dati cunnisciuti cum'è scopi. U primu paràmetru hè una serie di scopi chì includenu i dati di l'utente chì state dumandendu da Accedi cù Amazon. A prima volta chì un utilizatore accede à a vostra app, saranu presentati cun un elencu di i dati chì state dumandendu è dumandatu l'approvazione. U login cun Amazon supporta attualmente trè scopi: profile, chì cuntene u nome di l'utilizatore, l'indirizzu email, è l'identità di u contu Amazon; profile: user_id, chì cuntene solu l'ID di contu Amazon; è Codice pustale, chì cuntene u codice postale / codice postale di l'utilizatore.
U secondu parametru à authorizeUserForScopes: delegatu: hè un ogettu chì implementa u AIA AuthenticationDelegateprotocol, in questu casu un esempiu di u AMZNAuthorizeUserDelegate classa.- (IBAction) onLogInButtonClicked: (id) mittente {
// Fate auturizà chjamà à SDK per uttene un gettone d'accessu sicuru
// per l'utilizatore.
// Mentre fate a prima chjamata pudete specificà u minimu di basa
// scopi necessarii.// Richiede entrambi i scopi per l'utente attuale.
NSArray * requestScopes =
[NSArray arrayWithObjects: @ ”profile", @" Postal_code ", nulu];AMZNAuthorizeUserDelegate * delegate =
[AIMobileLib authorizeUserForScopes: requestScopes delegate: delegate];
[[AMZNAuthorizeUserDelegate alloc] initWithParentController: self];Aghjunghjite a vostra intestazione di implementazione delegata à a chjama di a classe
authorizeUserForScopes :. Per esampLe:#import "AMZNAuthorizeUserDelegate.h" - Crea un AMZNGetProfileDelegatu.
AMZNGetProfileDelegatu u nostru nome per una classe chì implementa u
AIA AuthenticationDelegateprotocol, è processerà u risultatu di u getProfile: chjamà. Mi piace authorizeUserForScopes: delegate :, getProfile: sustene u requestDidSucceed: è requestDidFail: metudi di protokollu. requestDidSucceed: riceve un APIResult oghjettu cù profile dati in a pruprietà risultatu. requestDidFail: riceve un AIErrore oghjettu cù infurmazioni nantu à l'errore in a pruprietà di l'errore.
Per creà una classe delegata da una dichjarazione di classe normale, importate
AIAuthenticationDelegate.hand aghjunghje u protocolu à a dichjarazione in u vostru header di classe file:#impurtanza @interfaccia AMZNGetProfileDelegatu: NSObject @end - Implementa requestDidSucceed: per u vostru AMZNAuthorizeUserDelegate. In requestDidSucceed :, chjama getProfile: per recuperà u cliente profile. getProfile:, cum'è authorizeUserForScopes: delegate :, usa u protocolu AIAuthenticationDelegate.
- (void) requestDidSucceed: (APIResult *) apiResult {
// U vostru còdice dopu chì l'utilizatore autorizeghja l'applicazione per
// dumandatu scopi.// Caricà novu view controller cù informazioni d'identificazione di l'utente
// cum'è l'utilizatore hè avà cunnessu cù successu.AMZNGetProfileDelegatu * delegatu =
[[AMZNGetProfileDelegate alloc] initWithParentController:parentViewController] autorilease];
[AIMobileLib getProfile: delegatu];
}Aghjunghjite a vostra intestazione di implementazione delegata à a chjama di a classe getProfile:. ForexampLe:
#import "AMZNGetProfileDelegatu.h " - Implementa requestDidSucceed: per u vostru AMZNGetProfileDelegatu.
requestDidSucceed: hà dui compiti principali: per recuperà u profile dati da u APIResult, è per trasmette i dati à l'UI.
Per recuperà u profile dati da u APIResult, accede à a pruprietà resultante. Per un getProfile: risposta, quella prupietà cuntene un dizziunariu di valori di pruprietà per l'utilizatore profile pruprietà. U profile pruprietà sò nome, email, è user_id per u profile portata è
codice postale per u codice postale scopu.- (void) requestDidSucceed: (APIResult *) apiResult {
// Uttenite profile a dumanda hè stata riesciuta. Scumpressate u profile infurmazione
// è u passa à u parente view controllerNSString * nome = [(NSDictionary *) apiResult.result
objectForKey: @ "nome"];
NSString * email = [(NSDictionary *) apiResult.result
objectForKey: @ "email"];
NSString * user_id = [(NSDictionary *) apiResult.result
objectForKey: @ "user_id"];
NSString * postal_code = [(NSDictionary *) apiResult.result
objectForKey: @ "postal_code"];// Passà i dati à view controller
} - Implementa requestDidFail: per u vostru AMZNGetProfileDelegatu.
requestDidFail: include un APIErrore oggettu chì cuntene dettagli nantu à l'errore. showLogInPageis un metudu ipoteticu chì resetterebbe u principale view controller per mostrà u login cù u buttone Amazon.- (void) requestDidFail: (APIError *) errorResponse {
// Uttenite Profile dumanda hà fiascatu per profile scopu.
// Se u codice d'errore = kAIApplicationNotAuthorized,
// permette à l'utilizatore di cunnettà si di novu.
if (errorResponse.error.code == kAIApplicationNotAuthorized) {
// Mostra u buttone di autorizazione di l'utilizatore.
[parenteViewCuntrollore showLogInPage];
}
altru {
// Manighjà altri errori
[[[[UIAlertView alloc] initWithTitle: @ "" missaghju: [NSString
stringWithFormat: @ "Errore hè accadutu cù u messagiu:% @",
errorResponse.error.message] delegatu: nil
cancelButtonTitle: @ "OK" otherButtonTitles: nil] autorelease] mostra];
}
} - Implementa requestDidFail: per u vostru AMZNAuthorizeUserDelegate.
- (void) requestDidFail: (APIError *) errorResponse {
NSString * message = errorResponse.error.message;
// U vostru codice quandu l'autorizazione falla. [[[[UIAlertView alloc] initWithTitle: @ "" missaghju: [NSString
stringWithFormat: @ "L'autorizazione di l'utilizatore hà fiascatu cù u messagiu:% @", errorResponse.error.message] delegatu: nil
cancelButtonTitle: @ "OK" otherButtonTitles: nil] autorelease] mostra];
}10. Implementà dumanda: apertaURL: sourceApplication: annotazione: in a classe di u vostru prughjettu chì gestisce u UUIApplicationDelegate protocolu (per difettu serà questu AppDelegateclass in u vostru prugettu). Quandu l'app presenta a pagina di login di Amazon, è l'utente compie u login, redirigerà à l'applicazione cù u URL Schema l'applicazione registrata prima. Questu redirect hè passatu à dumanda: apertaURL: sourceApplication: annotazione :, chì volta IÈ se u URL hè statu trattatu cù successu. manicuOpenURL: sourceApplicazione: hè una funzione di libreria SDK chì gestirà Login cù redirect Amazon URLs per voi. Sì manicuOpenURL: sourceApplication: restituisce YES, poi lu URL hè statu trattatu.
- Applicazione (BOOL): applicazione (UIApplication *)
apertaURL: (NSURL *)url
sourceApplication: (NSString *) sourceApplication
annotazione: (id) annotazione
{
// Passa u url à u SDK per analizà u codice d'auturizazione // da u url.
BOOL hèValidRedirectSignInURL =
[AIMobileLib handleOpenURL:url
SourceAppli cation: sour ceApplicati on);
if (! isValidRedirect Si gnlnURL)
vultà NO;
// L'applicazione pò ancu vulè manighjà e url vultà IÈ;
}NOTA: Stu metudu hè obsoletu in iOS 9 ma deve esse inclusu in u vostru prugettu per mantene u supportu per l'utilizatori nantu à e piattaforme più anziane. Per più infurmazione nantu dumanda: apertaURL: sourceApplication: annotazione :, vede Riferimentu di u protocolu UIApplicationDelegate nantu à developer.apple.com.
Verificate u login di l'Usuariu à u Startup
Se un utilizatore accede à a vostra app, chjude l'app, è riavvia l'app dopu, l'applicazione hè sempre autorizata à recuperà dati. L'utilizatore ùn hè micca disconnettu automaticamente. À l'iniziu, pudete mostrà l'utilizatore cum'è cunnessu se a vostra app hè sempre autorizata. Questa sezione spiega cumu aduprà
getAccessTokenForScopes: withOverrideParams: delegate: per vede se l'app hè sempre autorizata.
- Crea un AMZNGetAccessTokenDelegate classa. AMZNGetAccessTokenDelegateimplements lu AIAuthenticationDelegate prutucolu, è trasformerà u risultatu di u
getAccessTokenForScopes: withOverrideParams: delegate: chjama. AIAuthenticationDelegate cuntene dui metudi, requestDidSucceed: è requestDidFail:. requestDidSucceed: riceve un APIResult oghjettu cù dati token, mentre requestDidFail: riceve un APIErrore oghjettu cù infurmazioni nantu à l'errore.#impurtanza @interface AMZNGetAccessTokenDelegate: NSObject
@fine
Aghjunghjite a vostra intestazione di implementazione delegata à a chjama di a classe
getAccessTokenForScopes: withOverrideParams: delegate :. ForexampLe:#import "AMZNGetAccessTokenDelegate.h" - À l'iniziu di l'app, chjamate
getAccessTokenForScopes: withOverrideParams: delegate: per vede se l'applicazione hè sempre autorizata. getAccessTokenForScopes: withOverrideParams: delegate: recupera u gettone di accessu grezzu chì Accedi cù Amazon usa per accede à un cliente profile. Se u metudu riesce, l'app hè sempre autorizata è una chjamata à getProfile: duverebbe riesce. getAccessTokenForScopes: withOverrideParams: delegate: usa u AIAuthenticationDelegate protocolu in u listessu modu cum'è authorizeUserForScopes: delegate :. Passa l'ughjettu implementendu u protocolu cum'è parametru delegatu.- (void) checkIsUserSignedIn {
AMZNGetAccessTokenDelegate * delegate =
[[[AMZNGetAccessTokenDelegate alloc] initWithParentController:self] autorelease];
NSArray * requestScopes =
[NSArray arrayWithObjects: @ ”profile", @" Postal_code ", nulu]; [AIMobileLib getAccessTokenForScopes: requestScopes withOverrideParams: nil delegate: delegate];
} - Implementa requestDidSucceed: nantu à u vostru AMZNGetAccessTokenDelegate. requestDidSucceed: hà un compitu: chjamà getProfile:. Questu example chjama getProfile: aduprendu u listessu ascultatore chì avete dichjaratu in a sezione precedente (vede i passi 6-8).
#import "AMZNGetProfileDelegatu.h "
#impurtanza- (void) requestDidSucceed: (APIResult *) apiResult {
// U vostru còdice per aduprà u gettone d'accessu và quì.// Postu chì l'applicazione hà l'autorizazione per i nostri scopi, pudemu
[AIMobileLib getProfile: delegatu];
// uttene l'utilizatore profile.
AMZNGetProfileDelegatu * delegatu = [[[AMZNGetProfileDelegate alloc] initWithParentController: parentViewController] autorilease];
} - Implementa requestDidFail: nantu à u vostru AMZNGetAccessTokenDelegate.
requestDidFail: include un APIErrore oggettu chì cuntene dettagli nantu à l'errore. Se ricevi un errore, pudete resettà u principale view controller per mostrà u login cù u buttone Amazon.- (void) requestDidFail: (APIError *) errorResponse {
// U vostru còdice per gestisce a recuperazione fallita di u gettone d'accessu.
// Se u codice d'errore = kAIApplicationNotAuthorized, permette à l'utilizatore
// per cunnettassi torna.
if (errorResponse.error.code == kAIApplicationNotAuthorized) {
// Mostra login cù u buttone Amazon.
}
altru {
// Manighjà altri errori
[[[[UIAlertView alloc] initWithTitle: @ "" missaghju: [NSString
stringWithFormat: @ "Errore accadutu cù u messagiu:% @", errorResponse.error.message] delegatu: nil
cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease] mostra];
}
}
U clearAuthorizationState: metudu cancellerà i dati di autorizazione di l'utente da u AIMobileLib magazzinu di dati lucali. Un utilizatore duverà cunnettassi dinò per chì l'applicazione recuperi profile dati. Aduprate stu metudu per disconnettà un utilizatore, o per risolve i prublemi di login in l'app.
- Dichjarate un AMZNLogoutDelegate. Questa hè una classe chì implementa u
AIAuthenticationDelegateprotocol. Per i nostri scopi, pudemu eredità a classe da NSObject:
#impurtanza @interface AMZNLogoutDelegate NSObject
@fine
Aghjunghjite a vostra intestazione di implementazione delegata à a chjama di a classe clearAuthorizationState :. Per esampLe:
#import "AMZNLogoutDelegate.h" - Chjama clearAuthorizationState :.
Quandu un utilizatore hà cunnisciutu l'accessu, pudete furnisce un mecanismu di disconnessione per pudè cancellà i so dati d'auturizazione. U vostru meccanisimu pò esse un hyperlink, o una voce di menu, ma per questu scenariu l'esample creà una logoutButtonClickedmetudu per un buttone di disconnessione.- (IBAction) logoutButtonClicked: (id) mittente {
AMZNLogoutDelegate* delegate = [[[AMZNLogoutDelegate alloc] initWithParentController:self] autorelease]; [AIMobileLib clearAuthorizationState: delegatu];
}U solu parametru per clearAuthorizationState hè un AIAuthenticationDelegate chì mette in opera requestDidSucceed: è requestDidFail:.
- Implementa requestDidSucceed:. Stu metudu serà chjamatu quandu l'infurmazioni di l'utilizatore sò cancellate. Duvete dunque mostrarli cum'è disconnessi.
- (void) requestDidSucceed: (APIResult *) apiResult {
// A vostra logica addiziunale dopu l'autorizazione di l'utilizatore
// statu hè sbulicatu.
[[UIAlertView alloc] initWithTitle: @ "" missaghju: @ "Usuariu Sconnessu."
delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil] mostra];
} - Implementa requestDidFail:. Stu metudu serà chjamatu se per qualchì ragione l'infurmazioni di l'utilizatore ùn ponu micca esse cancellate da a cache. In questu casu, ùn li duvite micca mustrà cum'è disconnessi.
- (void) requestDidFail: (APIError *) errorResponse {
// A vostra logica addiziunale dopu à u SDK ùn hà micca riesciutu
// u statu d'autorizazione. [[[[UIAlertView alloc] initWithTitle: @ "" missaghju: [NSString
stringWithFormat: @ "L'uscita di l'utilizatore hà fiascatu cù u messagiu:% @",
errorResponse.error.message] delegatu: nil
cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease] mostra];
}
Pruvate a vostra Integrazione
Lanciate a vostra app in un dispositivu iOS o simulatore è cunfirmate chì pudete accede cù e vostre credenziali Amazon.com.
Nota: Quandu pruvate nantu à simulatori iOS10, pudete vede u messaghju di errore APIKey per l'Applicazione hè invalida per una richiesta authorizeUserForScopes, o Codice d'errore scunnisciutu per una dumanda clearAuthorizationState. Questu hè un bug cunnisciutu cù Apple chì accade quandu u SDK prova à accede à u portachiavi. Finu chì Apple ùn risolvi u bug, pudete travaglià intornu ad ellu attivendu Keychain Sharing per a vostra app sottu a tab Capacità di u target di a vostra app. Stu bug impatta solu simulatori. Pudete pruvà nantu à i dispositivi iOS10 attuali senza aduprà alcuna soluzione.
Cunnettatevi cù Amazon Guida introduttiva per iOS Versione 2.1.2 - Scaricate [ottimizatu]
Cunnettatevi cù Amazon Guida introduttiva per iOS Versione 2.1.2 - Scaricate