Prijavite se z Amazonovim vodnikom za začetek za iOS
Prijava z Amazonom: Vodnik za začetek za iOS
Avtorske pravice © 2016 Amazon.com, Inc. ali njene podružnice. Vse pravice pridržane.
Amazon in logotip Amazon sta blagovni znamki družbe Amazon.com, Inc. ali njenih podružnic. Vse druge blagovne znamke, ki niso v lasti Amazona, so last njihovih lastnikov.
Prvi koraki za iOS
V tem priročniku vam bomo pokazali, kako v aplikacijo za iOS dodate prijavo z Amazonom. Ko dokončate ta vodnik, bi morali imeti v aplikaciji delujoč gumb Prijava z Amazonom, ki uporabnikom omogoča prijavo s svojimi poverilnicami za Amazon
Namestitev Xcode
Login with Amazon SDK za iOS ponuja Amazon, ki vam pomaga dodati aplikacijo Login with Amazon v aplikacijo iOS. SDK je namenjen za uporabo z razvojnim okoljem Xcode. SDK podpira aplikacije, ki se izvajajo v iOS 7.0 in novejših različicah z uporabo ARMv7, ARMv7s, ARM64, i386 inx86_64.
Xcode lahko namestite iz trgovine Mac App Store. Za več informacij glejte Xcode: Kaj je novega na spletnem mestu developer.apple.com.
Ko je Xcode nameščen, lahko Namestite aplikacijo Login with Amazon SDK za iOS in Zaženite Sample App, kot je opisano spodaj.
Namestite aplikacijo Login with Amazon SDK za iOS
Prijava z Amazon SDK za iOS je na voljo v dveh paketih. Prva vsebuje knjižnico iOS in spremno dokumentacijo. Drugi vsebuje kotample aplikacija, ki uporabniku omogoča prijavo in view njihov profesionalecfile podatke.
Če še niste namestili Xcode, glejte navodila v Namestite Xcode razdelek zgoraj.
- Prenos Prijava z AmazonSDKForiOS.zip in izvlecite files v imenik na trdem disku.
Morali bi videti a Prijava z Amazon.framework imenik. To vsebuje knjižnico Login with Amazon.
Na zgornji ravni zadrge je LoginWithAmazon.doc nastavite imenik. To vsebuje dokumentacijo API-ja. - glej Namestite Login with Amazon Library za navodila o dodajanju knjižnice v projekt iOS.
Ko je nameščen Login with Amazon SDK za iOS, lahko Ustvarite novo prijavo s projektom Amazon po Registracija z Login with Amazon.
Zaženite Sample App
Za zagon sample, odprite datoteko sample v Xcode.
- Prenos SampleLoginWithAmazonAppForiOS.zip in kopirajte
Sampimenik leLoginWithAmazonAppForiOS v mapo Dokumenti. - Zaženite Xcode. Če se prikaže pogovorno okno Dobrodošli v Xcode, kliknite Odpri drugo. V nasprotnem primeru v glavnem meniju kliknite File in izberite Odpri.
- Izberite mapo Dokumenti in izberite
SampleLoginWithAppForiOS/LoginWithAmazonSample/ Prijava z AmazonSample.xcodeproj. Kliknite Odpri. - Sampprojekt bi se moral zdaj naložiti. Ko je končano, izberite Izdelek v glavnem meniju in izberite Teči
Registracija z Login with Amazon
Preden lahko uporabite prijavo z Amazonom na webspletnem mestu ali v mobilni aplikaciji, morate registrirati aplikacijo z Login with Amazon. Vaša aplikacija Login with Amazon je registracija, ki vsebuje osnovne informacije o vašem podjetju in informacije o vsakem od njih webspletno mesto ali mobilno aplikacijo, ki jo ustvarite in podpira prijavo z Amazonom. Ti podatki o podjetju so prikazani uporabnikom vsakič, ko uporabijo Login with Amazon na vašem webspletno mesto ali mobilno aplikacijo. Uporabniki bodo videli ime vaše aplikacije, vaš logotip in povezavo do vaše politike zasebnosti. Ti koraki prikazujejo, kako registrirati aplikacijo Login with Amazon in temu računu dodati aplikacijo iOS.
Oglejte si naslednje teme
- Registrirajte svojo prijavo z aplikacijo Amazon
- Dodajte aplikacijo za iOS v Security Profile
- ID in ključi za API Bundle
o Določite identifikator paketa za aplikacijo iOS
o Pridobite ključ API za iOS
Registrirajte svojo prijavo z aplikacijo Amazon
- Pojdi na https://login.amazon.com.
- Če ste se že prej prijavili za prijavo z Amazonom, kliknite Konzola za aplikacije. V nasprotnem primeru kliknite Prijavite se.
Preusmerjeni boste v Seller Central, ki obravnava registracijo aplikacije za prijavo z Amazonom. Če prvič uporabljate Seller Central, boste pozvani, da nastavite račun Seller Central. - Kliknite Registrirajte novo aplikacijo. The Registrirajte svojo prijavo prikazal se bo obrazec:
a. V obrazec za registracijo vaše prijave vnesite ime in a Opis za vašo prijavo.
The Ime je ime, prikazano na zaslonu za soglasje, ko se uporabniki strinjajo z deljenjem informacij z vašo aplikacijo. To ime velja za Android, iOS in webspletne različice vaše aplikacije.
b. Vnesite obvestilo o zasebnosti URL za vašo prijavo.
Obvestilo o zasebnosti URL je lokacija pravilnika o zasebnosti vašega podjetja ali aplikacije (nprample, http: //www.example.com/privacy.html). Ta povezava je uporabnikom prikazana na zaslonu za soglasje.
c. Če želite dodati a Slika logotipa za svojo aplikacijo kliknite Prebrskaj in poiščite ustrezno sliko.
Ta logotip je prikazan na zaslonu za prijavo in soglasje, da predstavlja vaše podjetje oz webspletnem mestu. Logotip bo zmanjšan na 50 slikovnih pik v višino, če je višji od 50 slikovnih pik; širina logotipa ni omejena. - Kliknite Shrani. Vaš sampregistracija bi morala biti podobna temu:
Ko so vaše osnovne nastavitve aplikacije shranjene, lahko dodate nastavitve za posebne webspletna mesta in mobilne aplikacije, ki bodo uporabljale to prijavo z računom Amazon.
Če imajo različne različice vaše aplikacije različne ID-je svežnja, na primer za eno ali več preskusnih različic in produkcijsko različico, vsaka različica zahteva svoj ključ API. Od Nastavitve za iOS svoje aplikacije kliknite Dodaj ključ API gumb, da ustvarite dodatne ključe za aplikacijo (po enega na različico).
Dodajte aplikacijo za iOS v Security Profile
Ko so vaše osnovne nastavitve aplikacije shranjene, lahko dodate nastavitve za posebne webspletna mesta in mobilne aplikacije, ki bodo uporabljale to prijavo z računom Amazon.
Če želite registrirati aplikacijo iOS, morate za projekt aplikacije določiti identifikator svežnja. Prijava z Amazonom bo ID svežnja uporabila za generiranje ključa API. Ključ API bo vaši aplikaciji odobril dostop do storitve za avtorizacijo Login with Amazon. Če želite v svoj račun dodati aplikacijo iOS, sledite tem korakom:
- Na zaslonu aplikacij kliknite Nastavitve za iOS. Če že imate registrirano aplikacijo za iOS, poiščite Dodaj ključ API gumb v Nastavitve za iOS razdelek.
The iOS aplikacija Prikaže se obrazec s podrobnostmi:
- Vnesite Oznaka vaše aplikacije za iOS. Ni nujno, da je to uradno ime vaše aplikacije. Preprosto prepozna to posebno aplikacijo za iOS med aplikacijami in webspletna mesta, registrirana v aplikaciji Prijava z Amazon.
- Vnesite svoj ID paketa. To se mora ujemati z identifikatorjem paketa vašega projekta iOS. Če želite določiti svoj identifikator svežnja, odprite projekt v Xcode. Odprite seznam lastnosti za projekt ( -Info.plist) v Navigator projekta. Identifikator paketa je ena od lastnosti na seznamu.
- Kliknite Shrani.
ID in ključi za API Bundle
Identifikator paketa je edinstven za vsako aplikacijo za iOS. Prijava z Amazonom uporablja ID paketa za izdelavo ključa API. Ključ API omogoča avtorizacijski storitvi Login with Amazon, da prepozna vašo aplikacijo.
Določite identifikator svežnja za aplikacijo iOS
- Odprite svoj projekt aplikacije v Xcode.
- Odprite Informacije Seznam nepremičnin za projekt ( -Info.plist) v Navigator projekta.
- Najdi Identifikator svežnja na seznamu lastnosti.
Pridobite ključ API-ja za iOS
Ko registrirate različico iOS in vnesete ID svežnja, lahko ključ API pridobite s strani za registracijo za prijavo z aplikacijo Amazon. Ključ API boste morali umestiti na seznam lastnosti vašega projekta. Dokler tega ne storite, aplikacija ne bo pooblaščena za komunikacijo s storitvijo za prijavo s storitvijo za avtorizacijo Amazon.
1. Pojdi na https://login.amazon.com.
2. Kliknite Konzola za aplikacije.
3. V Aplikacije kliknite svojo aplikacijo.
4. Poiščite svojo aplikacijo za iOS pod Nastavitve za iOS razdelek. Če še niste registrirali aplikacije za iOS, glejte Dodajte aplikacijo za iOS v Security Profile.
5. Kliknite Ustvari ključno vrednost API. V pojavnem oknu bo prikazan vaš ključ API. Če želite kopirati ključ, kliknite Izberite Vse , da izberete celotno tipko.
Opomba: Vrednost ključa API delno temelji na času ustvarjanja. Tako se lahko naslednje vrednosti ključev API, ki jih ustvarite, razlikujejo od prvotnih. V aplikaciji lahko uporabite katero koli od teh ključnih vrednosti API, saj so vse veljavne.
6. Glej Dodajte svoj ključ API na seznam lastnosti aplikacije za navodila o dodajanju ključa API vaši aplikaciji za iOS
Ustvarjanje prijave s projektom Amazon
V tem razdelku boste izvedeli, kako ustvariti nov projekt Xcode za prijavo z Amazonom in konfigurirati projekt.
Oglejte si naslednje teme:
- Ustvarite novo prijavo s projektom Amazon
- Namestite Login with Amazon Library
- Dodajte svoj ključ API na seznam lastnosti aplikacije
- Dodaj a URL Shema na seznam lastnosti aplikacije
- Svoji aplikaciji dodajte varnostno izjemo prenosa aplikacij za Amazon Seznam nepremičnin
OPOMBA: Ta novi korak je trenutno potreben pri razvoju na iOS 9 SDK - Svoji aplikaciji dodajte gumb za prijavo z Amazonom
Ustvarite novo prijavo s projektom Amazon
Če še nimate projekta aplikacije za uporabo prijave z Amazonom, sledite spodnjim navodilom, da ga ustvarite. Če imate obstoječo aplikacijo, preskočite na spodnji razdelek Namestitev prijave s knjižnico Amazon.
- Zagon Xcode.
- Če se vam prikaže a Dobrodošli v Xcode pogovorno okno izberite Ustvarite nov projekt Xcode.
V nasprotnem primeru od File meni, izberite Novo in Projekt. - Izberite vrsto projekta, ki ga želite ustvariti, in kliknite Naprej.
- Vnesite a Ime izdelka in a Identifikator podjetja. Upoštevajte svoje Identifikator svežnjain kliknite Naprej.
- Izberite mesto za shranjevanje projekta in kliknite Ustvari.
Zdaj boste imeli nov projekt, s katerim lahko pokličete Login with Amazon.
Namestite Login with Amazon Library
Če še niste prenesli prijave z Amazon SDK za iOS, glejte Namestite aplikacijo Login with Amazon SDK za iOS.
Projekt Prijava z Amazonom mora povezati Prijava z Amazon.framework in Varnostni okvir knjižnice. Prav tako boste morali konfigurirati iskalno pot ogrodja, da boste našli glave Login with Amazon
- Ko je projekt odprt v Xcode, izberite Ogrodja mapo, kliknite File v glavnem meniju in nato izberite Dodaj Files do “projekt”.
- V pogovornem oknu izberite Prijava z Amazon.framework in kliknite Dodaj.
Če ste uporabili knjižnico Login with Amazon 1.0, izbrišite imenik login-with-amazon sdk in login-with-amazon-sdk.a iz mape Frameworks. Kliknite Uredi v glavnem meniju in izberite Izbriši. - Izberite ime svojega projekta v Navigator projekta.
The Urednik projekta se prikaže v območju urejevalnika delovnega prostora Xcode. - Kliknite ime vašega projekta pod tarče, in izberite Faze gradnje. Razširite Poveži binarno datoteko s knjižnicami in kliknite znak plus, da dodate knjižnico.
- V iskalno polje vnesite Varnostni okvir. Izberite Security.framework in kliknite Dodaj.
- V iskalno polje vnesite SafariServices.framework. Izberite SafariServices.framework in kliknite Dodaj.
- V iskalno polje vnesite CoreGraphics.framework. Izberite CoreGraphics.framework in kliknite Dodaj
- Izberite Nastavitve gradnje. Kliknite Vse za view vse nastavitve.
- Pod Poti iskanja, zagotovite, da Prijava z Amazon.framework imenik je v Okvirne iskalne poti.
Na primerample:
Če ste uporabili knjižnico Login with Amazon 1.0, lahko odstranite vse sklice na pot knjižnice 1.0 v Poti iskanja glave or Poti iskanja knjižnice. - V glavnem meniju kliknite Izdelek in izberite Zgradite. Gradnja se mora uspešno zaključiti.
Če ste pred gradnjo projekta uporabili knjižnico Login with Amazon 1.0, zamenjajte #import “AIMobileLib.h”, #import “AIAuthenticationDelegate.h”, or #uvoz “AIError.h” v svojem viru files s #uvoz
.
Prijava z Amazon.h vključuje vse glave Login with Amazon hkrati.
Dodajte svoj ključ API na seznam lastnosti aplikacije
Ko registrirate svojo aplikacijo iOS z Login with Amazon, vam je dodeljen ključ API. To je identifikator, ki ga bo Amazonova mobilna knjižnica uporabila za identifikacijo vaše aplikacije v avtorizacijski storitvi Login with Amazon. Mobilna knjižnica Amazon naloži to vrednost med izvajanjem iz vrednosti lastnosti ključa API na seznamu informacijskih lastnosti vaše aplikacije.
- Ko je vaš projekt odprt, izberite Podpora Files mapo, nato izberite -Info.plist file (kje je ime vašega projekta). To bi moralo odpreti seznam lastnosti za urejanje:
- Prepričajte se, da ni izbran noben vnos. Nato v glavnem meniju kliknite urednik, in Dodaj element. Vnesite APIKey in pritisnite Vnesite.
- Dvokliknite pod Vrednost stolpec, da dodate vrednost. Kot vrednost prilepite svoj ključ API.
Dodaj a URL Shema na seznam lastnosti aplikacije
Ko se uporabnik prijavi, se mu prikaže Amazon stran za prijavo. Če želite, da vaša aplikacija prejme potrditev prijave, morate dodati URL shemo, tako da web stran lahko preusmeri nazaj v vašo aplikacijo. The URL shema mora biti prijavljena kot amzn- (nprample, amzncom.example.app). Za več informacij glejte Uporaba URL Sheme za komunikacijo z aplikacijami na spletnem mestu developer.apple.com.
- Ko je vaš projekt odprt, izberite Podpora Files mapo, nato izberite -Info.plist file (kje je ime vašega projekta). To bi moralo odpreti seznam lastnosti za urejanje:
- Prepričajte se, da ni izbran noben vnos. Nato v glavnem meniju kliknite urednik, in Dodaj element. Vnesite ali izberite URL vrste in pritisnite Vnesite.
- Razširi URL vrste razkriti Postavka 0. Izberite Postavka 0 in v glavnem meniju kliknite Urednik in Dodaj element. Vnesite ali izberite URL Identifikator in tisk Vnesite.
- Izberite Artikel 0 pod URL Identifikator in dvokliknite pod stolpcem Vrednost, da dodate vrednost. Vrednost je ID vašega paketa. Svoj ID svežnja najdete kot identifikator svežnja na seznamu lastnosti.
- Izberite Artikel 0 pod URL vrste in v glavnem meniju kliknite Urednik in Dodaj element. Vnesite ali izberite URL Sheme in pritisnite Enter.
- Izberite Artikel 0 pod URL Sheme in dvokliknite pod Vrednost stolpec za dodajanje a vrednost. Vrednost je vaš ID svežnja z amzn- vnaprej pripravljeno (nprample, amzn com.example.app). ID vašega svežnja je naveden kot Identifikator svežnja na seznamu lastnosti.
Svoji aplikaciji dodajte varnostno izjemo prenosa aplikacij za Amazon
Seznam nepremičnin
Začenši z iOS 9, Apple uveljavlja App Transport Security (ATS) za varne povezave med aplikacijo in web storitev. Končna točka (api.amazon.com), s katero Login with Amazon SDK sodeluje pri izmenjavi informacij, še ni v skladu z ATS. Dodajte izjemo za api.amazon.com, da omogočite brezhibno komunikacijo med SDK in strežnikom Amazon.
- Ko je vaš projekt odprt, izberite Podpora Files mapo, nato izberite -Info.plist file (kje je ime vašega projekta). To bi moralo odpreti seznam lastnosti za urejanje:
- Prepričajte se, da nobeden od vnosov ni. Nato v glavnem meniju kliknite Urednik, in Dodaj predmet. Vnesite ali izberite NSAppTransportSecurity in pritisnite Vnesite.
- Razširi NSAppTransportSecurity in v glavnem meniju kliknite Urednik in Dodaj predmet. Vnesite ali izberite NSExceptionDomains in pritisnite Vnesite.
- Razširi NSExceptionDomains in v glavnem meniju kliknite Urednik in Dodaj predmet. Vnesite amazon.com in pritisnite Vnesite.
- Razširi amazon.com in v glavnem meniju kliknite Urednik in Dodaj predmet.Vstopi NSExceptionRequiresForwardSecrecy in pritisnite Vnesite.
- Izberite NSExceptionRequiresForwardSecrecy in dvokliknite pod Vrednost stolpec za dodajanje Izberite a Vrsta of Boolean in a Vrednost of št.
Prijava z Amazonom ponuja več standardnih gumbov, s katerimi lahko uporabnike pozovete k prijavi iz vaše aplikacije. V tem razdelku so opisani koraki za prenos uradne slike Login with Amazon in njeno seznanjanje z iOS UIButton.
- Svoji aplikaciji dodajte standardni gumb UIButton.
Za vadnice in informacije o dodajanju gumba v aplikacijo glejte Ustvarjanje in konfiguriranje View Predmeti in Začnite razvijati aplikacije za iOS še danes na spletnem mestu developer.apple.com. - Dodajte Dotaknite se navznoter dogodek gumba za metodo z imenom onLoginButtonClicked. Zaenkrat pustite polje za izvedbo prazno. The Ustvarjanje in Konfiguriranje View Predmeti in Začnite razvijati aplikacije za iOS še danes dokumenti na apple.com vključujejo korake za dodajanje dogodka gumba.
- Izberite sliko gumba.
Oglejte si našo prijavo pri Amazonu Stilske smernice za seznam gumbov, ki jih lahko uporabite v svoji aplikaciji. Prenesite kopijo LWA_za_iOS.zip file. Poiščite želeni gumb v imenikih 1x in 2x in ga izvlecite iz datoteke zip. Izvlecite _Pressed različico gumba, če želite gumb prikazati v izbranem stanju. - Dodajte slike v svoj projekt.
a. V programu Xcode z naloženim projektom kliknite File v glavnem meniju in izberite Dodaj Files v "projekt".
b. V pogovornem oknu izberite sliko gumba file(s), ki ste jih prenesli in kliknite Dodaj.
c. Gumbi naj bodo zdaj v projektu v imeniku vašega projekta. Premaknite jih v podporo Filezgibanka. - Sliko dodajte gumbu.
Če želite omogočiti sliko za svoj gumb, lahko spremenite atribut gumba ali uporabite setImage: forState metoda na UIB gumb predmet. Če želite spremeniti atribut slike za svoj gumb, sledite tem korakom:
a. Odprite snemalno knjigo za svojo aplikacijo.
b. Izberite gumb v snemalni knjigi, tako da ga kliknete ali izberete med View Krmilnik Drevo scene.
c. V Pripomočki okno, odprite Inšpektor lastnosti.
d. Na vrhu inšpektorja atributov nastavite tip gumba na sistem.
e. V drugi skupini nastavitev izberite Privzeto za State Config.
f. V drugi skupini nastavitev spustite nastavitev Slika.
g. Izberite grafični gumb Prijava z Amazonom, ki ste ga dodali v projekt. Ne izberite različice 2x: samodejno se bo naložila na naprave z visoko gostoto (Retina).
h. Nastavite isto sliko za nastavitev ozadja.
i. Če želite določiti pritisnjeno različico gumba, izberite Selected za State Config in nastavite sliko na _Pressed različico vašega gumba.
j. Na snemalni knjigi po potrebi prilagodite velikost gumba, da bo ustrezal sliki.
Uporaba SDK-ja za API-je iOS
V tem razdelku boste svojemu projektu dodali kodo za prijavo uporabnika z Login with Amazon.
Oglejte si naslednje teme:
- Ravnajte z gumbom za prijavo in pridobite Profile podatki
- Preverite uporabniško prijavo ob zagonu
- Počisti stanje avtorizacije in odjavi uporabnika
V tem razdelku je razloženo, kako poklicati authorizeUserForScopes:delegate: in getProfile:API-ji za prijavo uporabnika in pridobitev njegove profile podatke. To vključuje ustvarjanje onLoginButtonClicked:poslušalec za vaš gumb Prijava z Amazonom.
- Svojemu iOS projektu dodajte Login with Amazon. Glejte Namestitev prijave s knjižnico Amazon.
- Uvozite prijavo z Amazon API v svoj vir file.
Če želite uvoziti prijavo z Amazon API, dodajte naslednje #importstatements do svojega vira file:#import - Ustvarite AMZNAuthorizeUserDelegateclass izvajati
AIAuthenticationDelegate.
kdaj authorizeUserForScopes:delegate: dokonča, bo poklical requestDidSucceed: or requestDidFail: metoda na objektu, ki izvaja AIAuthenticationDelegate protokol.@interface AMZNAuthorizeUserDelegate: NSObject @konec Za več informacij glejte Delo s protokoli na spletnem mestu developer.apple.com.
- Pokliči authorizeUserForScopes:delegate: in onLoginButtonClicked.
Če ste sledili korakom v Svoji aplikaciji dodajte gumb za prijavo z Amazonom, moral bi imeti onLoginButtonClicked: metoda povezan z gumbom Prijava z Amazonom. Pri tej metodi pokličite authorizeUserForScopes:delegate:to pozvati uporabnika, da se prijavi in avtorizira vašo aplikacijo.
Ta metoda bo uporabniku omogočila prijavo in privolitev v zahtevane podatke na enega od naslednjih načinov:
1.) Preklopi na web view v varnem kontekstu (če je v napravi nameščena aplikacija Amazon Shopping)
2.) Preklopi na Safari View Krmilnik (v sistemu iOS 9 in novejših)
3.) Preklopi na sistemski brskalnik (v iOS 8 in starejših)
Varni kontekst za prvo možnost je na voljo, ko je aplikacija Amazon Shopping nameščena v napravi. Če je uporabnik že prijavljen v aplikacijo Amazon Shopping, se stran za prijavo preskoči, kar vodi do a Enotna prijava (SSO) izkušnje.Ko je vaša aplikacija pooblaščena, je pooblaščena za enega ali več podatkovnih nizov, znanih kot obsegi. Prvi parameter je niz obsegov, ki zajemajo uporabniške podatke, ki jih zahtevate od Login with Amazon. Ko se uporabnik prvič prijavi v vašo aplikacijo, se mu prikaže seznam podatkov, ki jih zahtevate in zahtevate odobritev. Prijava z Amazon trenutno podpira tri obsege: profile, ki vsebuje uporabnikovo ime, e-poštni naslov in ID računa Amazon; profile:user_id, ki vsebuje samo ID računa Amazon; in poštna_številka, ki vsebuje uporabnikovo poštno številko.
Drugi parameter za authorizeUserForScopes:delegate: je objekt, ki izvaja AIAuthenticationDelegateprotocol, v tem primeru primerek AMZNAuthorizeUserDelegate razred.- (IBAction) onLogInButtonClicked: (id) pošiljatelj {
// Izvedite avtorizacijski klic v SDK, da dobite žeton varnega dostopa
// za uporabnika.
// Med prvim klicem lahko določite minimalno osnovno
// potrebni obsegi.// Zahtevanje obeh obsegov za trenutnega uporabnika.
NSArray *requestScopes =
[NSArray arrayWithObjects:@”profile”, @”poštna_koda”, nič];AMZNAuthorizeUserDelegate* delegat =
[AIMobileLib authorizeUserForScopes:requestScopes delegate:delegate];
[[AMZNAuthorizeUserDelegate alloc] initWithParentController:self];Dodajte glavo implementacije svojega pooblaščenca k klicu razreda
avtorizeUserForScopes:. Na primerample:#import “AMZNAuthorizeUserDelegate.h” - Ustvarite AMZNGetProfileDelegat.
AMZNGetProfileDelegateis naše ime za razred, ki izvaja
AIAuthenticationDelegateprotocol, in bo obdelal rezultat getProfile: klic. Všeč mi je authorizeUserForScopes:delegate:, getProfile: podpira requestDidSucceed: in requestDidFail: protokolarne metode. requestDidSucceed: prejme an APIResult objekt s profile podatke v lastnosti rezultata. requestDidFail: prejme an AIError objekt s podatki o napaki v lastnosti napake.
Če želite ustvariti razred pooblaščenca iz običajne deklaracije razreda, uvozite
AIAuthenticationDelegate.hand dodajte protokol v deklaracijo v glavi svojega razreda file:#uvoz @vmesnik AMZNGetProfilePooblaščenec: NSObject @end - Izvajati requestDidSucceed:za tvoje AMZNAuthorizeUserDelegate. In requestDidSucceed:, klic getProfile: za pridobitev stranke profile. getProfile:, kot authorizeUserForScopes:delegate:, uporablja protokol AIAuthenticationDelegate.
– (void)requestDidSucceed:(APIResult *)apiResult {
// Vaša koda po tem, ko uporabnik avtorizira aplikacijo za
// zahtevani obsegi.// Naloži novo view krmilnik s podatki za identifikacijo uporabnika
// saj je uporabnik zdaj uspešno prijavljen.AMZNGetProfileDelegat * delegat =
[[[AMZNGetProfileDelegat alloc] initWithParentController:nadrejeniViewkrmilnik] samodejna sprostitev];
[AIMobileLib getProfile:delegate];
}Dodajte glavo implementacije svojega pooblaščenca k klicu razreda getProfile:. Forexample:
#import “AMZNGetProfileDelegat.h” - Izvajati requestDidSucceed: za vašo AMZNGetProfileDelegat.
requestDidSucceed:has dve glavni nalogi: pridobiti profile podatki iz APIResult, in posredovati podatke uporabniškemu vmesniku.
Za pridobitev profile podatki iz APIResult, dostop do lastnosti rezultata. Za a getProfile:odziv, ta lastnost bo vsebovala slovar vrednosti lastnosti za uporabnika profile lastnosti. Profesionalecfile lastnosti so ime, e-pošta, in USER_ID za profesionalcafile obseg in
poštna_številka za poštna_številka obseg.– (void)requestDidSucceed:(APIResult *)apiResult {
// Get profile zahteva uspela. Razpakirajte profesionalcafile informacije
// in ga posreduje nadrejenemu view krmilnikNSString* ime = [(NSDictionary*)apiResult.result
objectForKey:@”name”];
NSString* email = [(NSDictionary*)apiResult.result
objectForKey:@”email”];
NSString* user_id = [(NSDictionary*)apiResult.result
objectForKey:@”user_id”];
NSString* poštna_koda = [(NSDictionary*)apiResult.result
objectForKey:@”poštna_številka”];// Posredovanje podatkov v view krmilnik
} - Izvajati requestDidFail: za vašo AMZNGetProfileDelegat.
requestDidFail: vključuje an APIError predmet, ki vsebuje podrobnosti o napaki. showLogInPageis hipotetično metodo, ki bi ponastavila glavno view krmilnik za prikaz gumba Prijava z Amazonom.– (void)requestDidFail:(APIError *)errorResponse {
// Get Profile zahteva ni uspela za profile obseg.
// Če je koda napake = kAIApplicationNotAuthorized,
// dovoli uporabniku, da se ponovno prijavi.
if(errorResponse.error.code == kAIApplicationNotAuthorized) {
// Prikaži gumb za avtorizacijo uporabnika.
[staršViewKrmilnik showLogInPage];
}
sicer {
// Obravnava druge napake
[[[[UIAlertView alloc] initWithTitle:@”” sporočilo:[NSString
stringWithFormat:@”Prišlo je do napake pri sporočilu: %@”,
errorResponse.error.message] delegate:nil
cancelButtonTitle:@”OK”otherButtonTitles:nil] avtorelease] show];
}
} - Izvajati requestDidFail:za tvoje AMZNAuthorizeUserDelegate.
– (void)requestDidFail:(APIError *)errorResponse {
NSString *message = errorResponse.error.message;
// Vaša koda, ko avtorizacija ne uspe. [[[[UIAlertView alloc] initWithTitle:@”” sporočilo:[NSString
stringWithFormat:@”Autorizacija uporabnika ni uspela s sporočilom: %@”, errorResponse.error.message] delegate:nil
cancelButtonTitle:@”OK”otherButtonTitles:nil] avtorelease] show];
}10. Izvedite prijava: odprtaURL:sourceApplication:opomba: v razredu v vašem projektu, ki obravnava UIApplicationDelegate protokol (privzeto bo to AppDelegateclass v vašem projektu). Ko aplikacija prikaže stran za prijavo v Amazon in uporabnik dokonča prijavo, bo preusmerjena v aplikacijo z uporabo URL Shema aplikacije, registrirane prej. Ta preusmeritev je posredovana prijava: odprtaURL:sourceApplication:annotation:, ki se vrača DA če je URL je bila uspešno obravnavana. ročajOpenURL:sourceApplication: je funkcija knjižnice SDK, ki obravnava prijavo s preusmeritvijo Amazon URLs zate. če ročajOpenURL:sourceApplication:vrne DA, nato pa URL je bilo obravnavano.
– (BOOL)aplikacija:(UIApplication *)aplikacija
odprtoURL: (NSURL *)url
sourceApplication:(NSString *)sourceApplication
opomba:(id)opomba
{
// Predajte naprej url v SDK za razčlenitev avtorizacijske kode // iz url.
BOOL isValidRedirectSignInURL =
[AIMobileLib handleOpenURL:url
sourceAppli kation :sour ceApplicati on) ;
if ( !isValidRedirect Si gnlnURL)
vrni NE;
// Aplikacija bo morda tudi želela obravnavati url vrni DA ;
}OPOMBA: Ta metoda je v sistemu iOS 9 opuščena, vendar jo je treba vključiti v vaš projekt, da ohranite podporo za uporabnike na starejših platformah. Za več informacij o prijava: odprtaURL:sourceApplication:annotation:, glej Referenca protokola UIApplicationDelegate na spletnem mestu developer.apple.com.
Preverite uporabniško prijavo ob zagonu
Če se uporabnik prijavi v vašo aplikacijo, jo zapre in pozneje znova zažene, je aplikacija še vedno pooblaščena za pridobivanje podatkov. Uporabnik ni odjavljen samodejno. Ob zagonu lahko uporabnika prikažete kot prijavljenega, če je vaša aplikacija še vedno pooblaščena. V tem razdelku je razloženo, kako uporabljati
getAccessTokenForScopes:withOverrideParams:delegate: da preverite, ali je aplikacija še vedno pooblaščena.
- Ustvarite AMZNGetAccessTokenDelegate razred. AMZNGetAccessTokenDelegate implementira the AIAuthenticationDelegate protokolu in bo obdelal rezultat
getAccessTokenForScopes:withOverrideParams:delegate: klic. AIAuthenticationDelegate vsebuje dve metodi, requestDidSucceed: in requestDidFail:. requestDidSucceed: prejme an APIResult objekt z žetonskimi podatki, medtem ko requestDidFail: prejme an APIError objekt s podatki o napaki.#import @interface AMZNGetAccessTokenDelegate :NSObject
@konec
Dodajte glavo implementacije svojega pooblaščenca k klicu razreda
getAccessTokenForScopes:withOverrideParams:delegate:. Forexample:#import “AMZNGetAccessTokenDelegate.h” - Ob zagonu aplikacije pokličite
getAccessTokenForScopes:withOverrideParams:delegate: da preverite, ali je aplikacija še dovoljena. getAccessTokenForScopes:withOverrideParams:delegate: pridobi žeton neobdelanega dostopa, ki ga Login with Amazon uporablja za dostop do stranke profile. Če je metoda uspešna, je aplikacija še vedno pooblaščena in klic na getProfile: bi moralo uspeti. getAccessTokenForScopes:withOverrideParams:delegate: uporablja AIAuthenticationDelegate protokol na enak način kot authorizeUserForScopes:delegate:. Predajte objekt, ki izvaja protokol, kot parameter delegata.– (void)checkIsUserSignedIn {
AMZNGetAccessTokenDelegate* delegat =
[[[AMZNGetAccessTokenDelegate alloc] initWithParentController:self] avtorelease];
NSArray *requestScopes =
[NSArray arrayWithObjects:@”profile”, @”poštna_koda”, nič]; [AIMobileLib getAccessTokenForScopes:requestScopes withOverrideParams:nil delegate:delegate];
} - Izvajati requestDidSucceed: na tvojem AMZNGetAccessTokenDelegate. requestDidSucceed: ima eno nalogo: poklicati getProfile:. Ta bivšiample kliče getProfile: z uporabo istega poslušalca, ki ste ga navedli v prejšnjem razdelku (glejte korake 6-8).
#import “AMZNGetProfileDelegat.h”
#import– (void)requestDidSucceed:(APIResult *)apiResult {
// Tukaj je vaša koda za uporabo žetona za dostop.// Ker ima aplikacija avtorizacijo za naše obsege, lahko
[AIMobileLib getProfile:delegate];
// pridobite uporabnika profile.
AMZNGetProfileDelegat* delegat = [[[AMZNGetProfileDelegat alloc] initWithParentController:nadrejeniViewkrmilnik] samodejna sprostitev];
} - Izvajati requestDidFail: na tvojem AMZNGetAccessTokenDelegate.
requestDidFail: vključuje an APIError predmet, ki vsebuje podrobnosti o napaki. Če prejmete napako, lahko ponastavite glavno view krmilnik za prikaz gumba Prijava z Amazonom.– (void)requestDidFail:(APIError *)errorResponse {
// Vaša koda za obravnavo neuspele pridobitve žetona za dostop.
// Če je koda napake = kAIApplicationNotAuthorized, dovoli uporabniku
// za ponovno prijavo.
if(errorResponse.error.code == kAIApplicationNotAuthorized) {
// Pokaži gumb Prijava z Amazonom.
}
sicer {
// Obravnava druge napake
[[[[UIAlertView alloc] initWithTitle:@”” sporočilo:[NSString
stringWithFormat:@”Prišlo je do napake pri sporočilu: %@”, errorResponse.error.message] delegate:nil
cancelButtonTitle:@”OK” otherButtonTitles:nil] avtorelease] show];
}
}
The clearAuthorizationState: metoda bo izbrisala avtorizacijske podatke uporabnika iz AIMmobileLib lokalna shramba podatkov. Uporabnik se bo moral znova prijaviti, da bo aplikacija pridobila profile podatkov. S to metodo odjavite uporabnika ali odpravite težave pri prijavi v aplikacijo.
- Razglasi an AMZNOdjava delegata. To je razred, ki izvaja
AIAuthenticationDelegateprotocol. Za naše namene lahko podedujemo razred iz NSObject:
#import @interface AMZNLogoutDelegate NSObject
@konec
Dodajte glavo implementacije svojega pooblaščenca k klicu razreda clearAuthorizationState:. Na primerample:
#import “AMZNLogoutDelegate.h” - Pokliči clearAuthorizationState:.
Ko se uporabnik uspešno prijavi, lahko zagotovite mehanizem za odjavo, da lahko izbriše svoje avtorizacijske podatke. Vaš mehanizem je lahko hiperpovezava ali menijska postavka, vendar za ta scenarij example bo ustvaril a odjavaButtonClickedmethod za gumb za odjavo.– (IBAction)logoutButtonClicked:(id)sender {
AMZNLogoutDelegate* delegate = [[[AMZNLogoutDelegate alloc] initWithParentController:self] avtorelease]; [AIMobileLib clearAuthorizationState:delegate];
}Edini parameter za clearAuthorizationState je AIAuthenticationDelegate ki izvaja requestDidSucceed: in requestDidFail:.
- Izvajati requestDidSucceed:. Ta metoda bo poklicana, ko bodo izbrisani podatki uporabnika. Nato jih morate prikazati kot odjavljene.
– (void)requestDidSucceed:(APIResult *)apiResult {
// Vaša dodatna logika po avtorizaciji uporabnika
// stanje je počiščeno.
[[[UIAlertView alloc] initWithTitle:@”” sporočilo:@”Uporabnik odjavljen.”
delegate:nil cancelButtonTitle:@”OK” otherButtonTitles:nil] show];
} - Izvajati requestDidFail:. Ta metoda bo poklicana, če iz nekega razloga podatkov o uporabniku ni mogoče izbrisati iz predpomnilnika. V tem primeru jih ne smete prikazati kot odjavljene.
– (void)requestDidFail:(APIError *)errorResponse {
// Vaša dodatna logika po neuspešnem čiščenju SDK
// stanje avtorizacije. [[[[UIAlertView alloc] initWithTitle:@”” sporočilo:[NSString
stringWithFormat:@”Odjava uporabnika ni uspela s sporočilom: %@”,
errorResponse.error.message] delegate:nil
cancelButtonTitle:@”OK” otherButtonTitles:nil] avtorelease] show];
}
Preizkusite svojo integracijo
Zaženite aplikacijo v napravi iOS ali simulatorju in potrdite, da se lahko prijavite s poverilnicami Amazon.com.
Opomba: Pri testiranju na simulatorjih iOS10 boste morda videli sporočilo o napaki APIKey for the Application is valid za zahtevo authorizeUserForScopes ali Unknown Error Code za zahtevo clearAuthorizationState. To je a znana napaka pri Appleu ki se zgodi, ko SDK poskuša dostopati do obeska ključev. Dokler Apple ne odpravi napake, jo lahko zaobidete tako, da omogočite Keychain Sharing za vašo aplikacijo na kartici Capabilities cilja vaše aplikacije. Ta napaka vpliva samo na simulatorje. Preizkušate lahko na dejanskih napravah iOS10, ne da bi uporabili kakršno koli rešitev.
Prijavite se z Amazonovim vodnikom za začetek za iOS, različica 2.1.2 – Prenos [optimizirano]
Prijavite se z Amazonovim vodnikom za začetek za iOS, različica 2.1.2 – Prenos