Login ak Amazon pou kòmanse Gid pou iOS
Login ak Amazon: Gid pou kòmanse pou iOS
Copyright © 2016 Amazon.com, Inc., oswa afilye li yo. Tout dwa rezève.
Amazon ak logo Amazon se mak komèsyal Amazon.com, Inc. oswa afilye li yo. Tout lòt mak ki pa posede pa Amazon yo se pwopriyete mèt pwopriyete respektif yo.
Pou kòmanse pou iOS
Nan gid sa a nou pral montre w kouman yo ajoute Login ak Amazon nan app iOS ou. Apre w fin ranpli gid sa a ou ta dwe gen yon Login k ap travay ak bouton Amazon nan app ou a ki pèmèt itilizatè yo ouvri sesyon an ak kalifikasyon Amazon yo
Enstale Xcode
Se Login a ak Amazon SDK pou iOS ki ofri pa Amazon ede ou ajoute Login ak Amazon nan aplikasyon iOS ou. SDK a fèt pou itilize ak anviwònman devlopman Xcode. SDK a sipòte apps kouri sou iOS 7.0 epi pita lè l sèvi avèk ARMv7, ARMv7s, ARM64, i386, andx86_64.
Ou ka enstale Xcode soti nan Mac App Store la. Pou plis enfòmasyon, gade Xcode: Ki sa ki nan nouvo sou developer.apple.com.
Apre Xcode enstale, ou kapab Enstale Login a ak Amazon sdk pou iOS epi Kouri S laample App, jan sa dekri anba a.
Enstale Login a ak Amazon sdk pou iOS
Login a ak Amazon sdk pou iOS vini nan de pakè. Premye a gen bibliyotèk la iOS ak dokiman sipò. Dezyèm lan gen kòmample aplikasyon ki pèmèt yon itilizatè ouvri sesyon an ak view pro yofile done.
Si ou poko enstale Xcode, gade enstriksyon yo nan Enstale Xcode seksyon anlè a.
- Telechaje LoginWithAmazonSDKForiOS.zip epi ekstrè a files nan yon anyè sou kondwi difisil ou.
Ou ta dwe wè yon LoginWithAmazon.framework anyè. Sa a gen Login a ak bibliyotèk Amazon.
Nan nivo tèt zip la se yon LoginWithAmazon.doc mete anyè. Sa a gen dokiman an API. - Gade Enstale Login a ak Amazon Bibliyotèk pou enstriksyon sou kòman yo ajoute bibliyotèk la nan yon pwojè iOS.
Lè se Login a ak Amazon sdk pou iOS enstale, ou kapab Kreye yon Nouvo Login ak Pwojè Amazon apre Enskri ak Login ak Amazon.
Kouri S laample App
Pou kouri s laampaplikasyon an, louvri s laample nan Xcode.
- Telechaje SampleLoginWithAmazonAppForiOS.zip epi kopye a
SampleLoginWithAmazonAppForiOS anyè nan katab Dokiman ou yo. - Kòmanse Xcode. Si Byenveni nan Xcode dyalòg Pops leve, klike sou Louvri Lòt. Sinon, soti nan meni prensipal la, klike sou File epi chwazi Louvri.
- Chwazi Katab Dokiman yo, epi chwazi
SampleLoginWithAmazonAppForiOS / LoginWithAmazonSample / LoginWithAmazonSample.xcodeproj. Klike sou Louvri. - S laamppwojè a ta dwe kounye a chaje. Lè li fini, chwazi Pwodwi soti nan meni prensipal la epi chwazi Kouri
Enskri ak Login ak Amazon
Anvan ou ka itilize Login ak Amazon sou yon websit oswa nan yon aplikasyon mobil, ou dwe anrejistre yon aplikasyon ak Login ak Amazon. Ou konekte ak Amazon aplikasyon an se enskripsyon an ki gen enfòmasyon debaz sou biznis ou, ak enfòmasyon sou chak websit oswa aplikasyon mobil ou kreye ki sipòte Login ak Amazon. Enfòmasyon biznis sa a parèt pou itilizatè yo chak fwa yo itilize Login with Amazon sou ou websit oswa mobil app. Itilizatè yo pral wè non aplikasyon ou an, logo ou, ak yon lyen nan règleman sou vi prive ou. Etap sa yo demontre kouman yo enskri yon Login ak aplikasyon Amazon epi ajoute yon app iOS nan ki kont.
Gade sijè sa yo
- Enskri Login ou a ak Amazon Aplikasyon
- Ajoute yon iOS app nan yon Pro Sekirite Sosyalfile
- iOS Bundle ID ak kle API
o Detèmine yon Idantifikatè Bundle pou yon iOS app
o Rekipere yon kle API iOS
Enskri Login ou a ak Amazon Aplikasyon
- Ale nan https://login.amazon.com.
- Si ou te enskri pou Login ak Amazon anvan, klike sou App Konsole. Sinon, klike sou Enskri.
Ou pral reyorante resous nan Machann Santral, ki okipe enskripsyon aplikasyon pou Login ak Amazon. Si sa a se premye fwa ou lè l sèvi avèk Machann Santral, yo pral mande w yo mete kanpe yon kont Machann Santral. - Klike sou Anrejistre Nouvo Aplikasyon. La Anrejistre aplikasyon w lan fòm ap parèt:
a. Nan enskri fòm aplikasyon ou an, antre nan yon Non ak yon Deskripsyon pou aplikasyon w lan.
La Non se non ki parèt sou ekran konsantman an lè itilizatè yo dakò pataje enfòmasyon ak aplikasyon w lan. Non sa a aplike a Android, iOS, ak webvèsyon sit aplikasyon w lan.
b. Mete yon Avi sou Konfidansyalite URL pou aplikasyon w lan.
Avi sou Konfidansyalite a URL se kote règleman sou vi prive konpayi ou an oswa aplikasyon an (pou ansyenample, http: //www.example.com/privacy.html). Lyen sa a parèt pou itilizatè yo sou ekran konsantman an.
c. Si ou vle ajoute yon Imaj Logo pou aplikasyon w lan, klike sou Browse epi lokalize imaj ki aplikab la.
Logo sa a parèt sou siyen-an ak konsantman ekran pou reprezante biznis ou oswa websit. Logo a ap retresi a 50 piksèl nan wotè si li pi wo pase 50 piksèl; pa gen okenn limit sou lajè logo la. - Klike sou Sove. s ouampenskripsyon an ta dwe sanble ak sa a:
Apre yo fin sove paramèt aplikasyon debaz ou a, ou ka ajoute paramèt espesifik websit ak apps mobil ki pral itilize sa a Login ak kont Amazon.
Si vèsyon diferan nan app ou a gen diferan ID pake, tankou pou youn oswa plis vèsyon tès ak yon vèsyon pwodiksyon, chak vèsyon egzije pou pwòp kle API li yo. Soti nan la iOS Anviwònman nan app ou, klike sou la Ajoute API kle bouton pou kreye kle adisyonèl pou app ou (youn pou chak vèsyon).
Ajoute yon iOS app nan yon Pro Sekirite Sosyalfile
Apre yo fin sove paramèt aplikasyon debaz ou a, ou ka ajoute paramèt espesifik websit ak apps mobil ki pral itilize sa a Login ak kont Amazon.
Pou enskri yon iOS app, ou gen presize idantifyan an Bundle pou pwojè a app. Login ak Amazon pral sèvi ak ID la pake jenere yon kle API. Kle API a ap akòde aksè app ou nan Login ak sèvis otorizasyon Amazon. Swiv etap sa yo ajoute yon app iOS nan kont ou:
- Soti nan ekran Aplikasyon an, klike sou iOS Anviwònman. Si ou deja gen yon app iOS anrejistre, gade pou la Ajoute API kle bouton nan iOS Anviwònman seksyon.
La iOS Aplikasyon Detay fòm ap parèt:
- Antre nan Mete etikèt sou nan iOS app ou. Sa a pa dwe non ofisyèl nan app ou an. Li senpleman idantifye app iOS patikilye sa a nan mitan apps yo ak websit ki anrejistre nan Login ou ak aplikasyon Amazon.
- Antre ou ID Bundle. Sa a dwe matche ak idantifyan nan pake nan pwojè iOS ou. Pou detèmine idantifikasyon pake ou, louvri pwojè a nan Xcode. Louvri lis pwopriyete pou pwojè a ( -Info.plist) nan la Navigatè Pwojè. Idantifikatè a Bundle se youn nan pwopriyete yo nan lis la.
- Klike sou Sove.
iOS Bundle ID ak kle API
Idantifikatè a Bundle se inik nan chak app iOS. Login ak Amazon sèvi ak ID la Bundle yo konstwi kle API ou. Kle API a pèmèt Login ak sèvis otorizasyon Amazon yo rekonèt app ou an.
Detèmine yon Idantifyan pake pou yon iOS app
- Louvri pwojè app ou nan Xcode.
- Louvri a Lis Pwopriyete Enfòmasyon pou pwojè a ( -Info.plist) nan la Navigatè Pwojè.
- Jwenn Bundle idantifikasyon nan lis pwopriyete yo.
Rekipere yon kle API iOS
Apre ou fin anrejistre yon vèsyon iOS ak bay yon ID Bundle, ou ka rekipere kle a API soti nan paj enskripsyon an pou Login ou ak aplikasyon Amazon. Ou pral bezwen mete ki kle API nan lis pwopriyete pwojè ou a. Jiskaske ou fè sa, app a pa pral otorize pou kominike avèk Login ak sèvis otorizasyon Amazon.
1. Ale nan https://login.amazon.com.
2. Klike App Konsole.
3. Nan la Aplikasyon yo bwat, klike sou aplikasyon ou an.
4. Jwenn app iOS ou anba la iOS Anviwònman seksyon. Si ou pa deja anrejistre yon app iOS, gade Ajoute yon iOS app nan yon Pro Sekirite Sosyalfile.
5. Klike Jenere API Valè kle. Yon fenèt popup ap montre kle API ou an. Pou kopye kle a, klike sou Chwazi Tout yo chwazi kle a tout antye.
Nòt: Valè kle API a baze, an pati, sou tan li pwodwi a. Se konsa, ki vin apre API kle Valè (yo) ou jenere ka diferan de orijinal la. Ou ka itilize nenpòt nan sa yo Valè kle API nan app ou jan yo tout valab.
6. Gade Ajoute kle API ou a nan lis pwopriyete App ou an pou enstriksyon sou ajoute kle a API nan app iOS ou
Kreye yon Login ak Amazon Pwojè
Nan seksyon sa a, ou pral aprann ki jan yo kreye yon nouvo pwojè Xcode pou Login ak Amazon ak configured pwojè a.
Gade sijè sa yo:
- Kreye yon Nouvo Login ak Pwojè Amazon
- Enstale Login a ak Amazon Bibliyotèk
- Ajoute kle API ou a nan lis pwopriyete App ou an
- Ajoute yon URL Scheme nan lis pwopriyete App ou an
- Ajoute yon eksepsyon sekirite transpò App pou Amazon nan app ou an Lis pwopriyete
REMAK: Nouvo etap sa a nesesè kounye a lè w ap devlope sou iOS 9 sdk la - Ajoute yon Login ak bouton Amazon nan App ou an
Kreye yon Nouvo Login ak Pwojè Amazon
Si ou poko gen yon pwojè app pou itilize Login ak Amazon, swiv enstriksyon ki anba yo pou kreye youn. Si ou gen yon app ki egziste deja, sote nan Enstale Login a ak seksyon Amazon Bibliyotèk anba a.
- Lanse Xcode.
- Si yo prezante w ak yon Byenveni nan Xcode dyalòg, chwazi Kreye yon nouvo pwojè Xcode.
Sinon, soti nan la File meni, chwazi Nouvo epi Pwojè. - Chwazi ki kalite pwojè ou vle kreye epi klike sou Next.
- Antre yon Non pwodwi ak yon Konpayi idantifikasyon. Remake byen ou Idantifyan pake, epi klike Next.
- Chwazi yon kote nan ki magazen pwojè ou, epi klike Kreye.
Ou pral kounye a gen yon nouvo pwojè ke ou ka itilize yo rele Login ak Amazon.
Enstale Login a ak Amazon Bibliyotèk
Si ou poko telechaje Login a ak Amazon SDK pou iOS, gade Enstale Login a ak Amazon sdk pou iOS.
Yon Login ak pwojè Amazon dwe konekte nan LoginWithAmazon.framework epi Sekirite.kad bibliyotèk. Ou pral bezwen tou konfigirasyon chemen rechèch la fondasyon jwenn Login a ak Amazon Tèt
- Avèk pwojè ou louvri nan Xcode, chwazi a Kad Katab, klike sou File soti nan meni prensipal la, ak Lè sa a chwazi Ajoute Files pou "Pwojè".
- Nan dyalòg la, chwazi LoginWithAmazon.framework epi klike sou Ajoute.
Si ou te itilize Login a ak Amazon 1.0 bibliyotèk, efase login-ak-Amazon sdk anyè a ak login-with-Amazon-sdk.a soti nan folder nan Frameworks. Klike Edit soti nan meni prensipal la epi chwazi Efase. - Chwazi non pwojè ou nan Navigatè Pwojè.
La Pwojè Editè ap parèt nan zòn nan editè nan espas travay la Xcode. - Klike sou non pwojè ou anba Objektif, epi chwazi Bati Faz. Ogmante Link Binè ak Bibliyotèk epi klike sou siy plis pou ajoute yon bibliyotèk.
- Nan bwat rechèch la, antre Sekirite.kad. Chwazi Security.framework ak klike sou Ajoute.
- Nan bwat rechèch la, antre SafariServices.framework. Chwazi SafariServices.framework epi klike Ajoute.
- Nan bwat rechèch la, antre CoreGraphics.framework. Chwazi CoreGraphics.framework epi klike Ajoute
- Chwazi Bati Anviwònman. Klike sou Tout nan view tout anviwònman.
- Anba Rechèch chemen, asire ke a LoginWithAmazon.framework anyè se nan Chemen rechèch chapant.
Pou egzanpample:
Si ou te itilize Login ak Amazon 1.0 bibliyotèk la, ou ka retire nenpòt referans nan chemen bibliyotèk 1.0 nan Chemen Search Header or Chemen Bibliyotèk Rechèch. - Soti nan meni prensipal la, klike sou Pwodwi epi chwazi Bati. Konstwi a ta dwe konplete avèk siksè.
Anvan ou bati pwojè ou a, si ou te itilize Login a ak Amazon 1.0 bibliyotèk, ranplase #import "AIMobileLib.h", #import "AIAuthenticationDelegate.h", or #enpòte "AIError.h" nan sous ou files avèk #enpòte
.
LoginWithAmazon.h gen ladan tout nan Login a ak Amazon Tèt nan yon fwa.
Ajoute kle API ou a nan lis pwopriyete App ou an
Lè ou enskri aplikasyon iOS ou a ak Login ak Amazon, yo asiyen ou yon kle API. Sa a se yon idantifikasyon ki Amazon Mobile Bibliyotèk la pral itilize yo idantifye aplikasyon w lan nan Login a ak sèvis otorizasyon Amazon. Amazon mobil Bibliyotèk la chaje valè sa a nan ègzekutabl soti nan valè pwopriyete kle API nan Lis Enfòmasyon Pwopriyete aplikasyon w lan.
- Avèk pwojè ou louvri, chwazi a Sipòte Files katab, Lè sa a, chwazi a -Info.plist file (kote se non pwojè ou a). Sa a ta dwe louvri lis la pwopriyete pou koreksyon:
- Asire w ke yo pa chwazi okenn nan antre yo. Lè sa a, soti nan meni prensipal la, klike sou Editè, epi Ajoute Atik. Antre APKey ak peze Antre.
- Double-klike sou anba a Valè kolòn ajoute yon valè. Kole kle API ou kòm valè a.
Ajoute yon URL Scheme nan lis pwopriyete App ou an
Lè itilizatè a ouvri sesyon an, yo pral prezante ak yon paj login Amazon. Nan lòd pou app ou a resevwa konfimasyon nan login yo, ou dwe ajoute yon URL konplo pou ke la web paj ka redireksyon tounen nan app ou. La URL konplo dwe deklare kòm amzn- (pou egzanpample, amzncom.example.app). Pou plis enfòmasyon, gade Sèvi ak URL Schemes yo kominike avèk Apps sou developer.apple.com.
- Avèk pwojè ou louvri, chwazi a Sipòte Files katab, Lè sa a, chwazi a -Info.plist file (kote se non pwojè ou a). Sa a ta dwe louvri lis la pwopriyete pou koreksyon:
- Asire w ke yo pa chwazi okenn nan antre yo. Lè sa a, soti nan meni prensipal la, klike sou Editè, epi Ajoute Atik. Mete oswa chwazi URL kalite ak peze Antre.
- Elaji URL kalite revele Atik 0. Chwazi Atik 0 epi, nan meni prensipal la, klike sou Editè epi ajoute atik. Mete oswa chwazi URL Idantifikatè ak laprès Antre.
- Chwazi Atik 0 anba URL Idantifyan epi double-klike sou anba kolòn Valè pou ajoute yon valè. Valè a se ID pake ou. Ou ka jwenn ID pake ou ki nan lis kòm idantifikasyon Bundle nan lis pwopriyete a.
- Chwazi Atik 0 anba URL kalite epi, nan meni prensipal la, klike sou Editè epi Ajoute Atik. Mete oswa chwazi URL Konplo ak laprès Antre.
- Chwazi Atik 0 anba URL Scheme epi double-klike sou anba a Valè kolòn ajoute yon valè. Valè a se ID pake ou avèk yo amzn- prepended (pou ansyenample, amzn com.example.app). Ou ka jwenn ID pake ou ki nan lis kòm Bundle idantifikasyon nan lis pwopriyete a.
Ajoute yon eksepsyon sekirite transpò App pou Amazon nan app ou an
Lis pwopriyete
Kòmanse ak iOS 9, Apple ranfòse Sekirite Transpò App (ATS) pou koneksyon sekirite ant yon app ak web sèvis yo. Pwen final la (api.amazon.com) Login a ak Amazon sdk reyaji avèk echanj enfòmasyon pa konfòme a ATS ankò. Ajoute yon eksepsyon pou api.amazon.com pou pèmèt yon kominikasyon san pwoblèm ant sdk la ak sèvè Amazon la.
- Avèk pwojè ou louvri, chwazi a Sipòte Files katab, Lè sa a, chwazi a -Info.plist file (kote se non pwojè ou a). Sa a ta dwe louvri lis la pwopriyete forediting:
- Asire w ke okenn nan antre yo Lè sa a, soti nan meni prensipal la, klike sou Editè, ak Ajoute atik. Mete oswa chwazi NSAppTransportSecurity ak peze Antre.
- Elaji NSAppTransportSecurity epi, nan meni prensipal la, klike sou Editè epi Ajoute atik. Mete oswa chwazi NSExceptionDomains ak peze Antre.
- Elaji NSExceptionDomains epi, nan meni prensipal la, klike sou Editè epi Ajoute atik. Antre nan amazon.com ak laprès Antre.
- Elaji amazon.com epi, nan meni prensipal la, klike sou Editè epi Ajoute atik.Antre NSExceptionRequiresForwardSecrecy ak peze Antre.
- Chwazi NSExceptionRequiresForwardSecrecy epi double-klike sou anba a Valè kolòn yo ajoute yon Chwazi yon Kalite of Booleyen ak yon Valè of NON.
Login ak Amazon bay plizyè bouton estanda ou ka itilize pou fè itilizatè yo konekte nan app ou an. Seksyon sa a bay etap pou telechaje yon Login ofisyèl ak imaj Amazon ak appariement li ak yon UIButton iOS.
- Ajoute yon UIButton estanda nan app ou.
Pou tutoryèl ak enfòmasyon sou kòman yo ajoute yon bouton nan yon app, gade Kreye ak konfigirasyon View Objè yo epi Kòmanse Devlope iOS Apps Jodi a sou developer.apple.com. - Ajoute la Manyen andedan evènman pou bouton an nan yon metòd yo te rele onLoginButtonClicked. Kite aplikasyon an vid pou kounye a. La Kreye ak Konfigirasyon View Objè yo epi Kòmanse Devlope iOS Apps Jodi a dokiman sou apple.com gen ladan etap sou ajoute yon evènman bouton.
- Chwazi yon imaj bouton.
Konsilte Login nou an ak Amazon Gid Style pou yon lis bouton ke ou ka itilize nan app ou. Telechaje yon kopi LWA_for_iOS.zip file. Jwenn bouton ou pi pito nan tou de 1x ak 2xdirectories ak ekstrè yo nan postal la. Ekstrè vèsyon an _Pressed nan bouton ou si ou vle montre bouton an nan yon eta chwazi. - Ajoute imaj yo nan pwojè ou a.
a. Nan Xcode, ak pwojè ou chaje, klike sou File soti nan meni prensipal la epi chwazi Ajoute Files nan "pwojè".
b. Nan dyalòg la, chwazi imaj bouton an file(s) ke ou telechaje epi klike sou Ajoute.
c. Bouton yo ta dwe kounye a nan pwojè a anba anyè pwojè ou a. Deplase yo nan Sipò a Filesfolder. - Ajoute imaj la nan bouton ou an.
Pou pèmèt imaj la pou bouton ou, ou ka modifye atribi bouton an oswa itilize setImage: forState metòd sou la UIButton objè. Swiv etap sa yo modifye atribi a imaj pou bouton ou:
a. Louvri senaryo a pou app ou.
b. Chwazi bouton an nan senaryo ou pa klike sou li oswa chwazi li nan la View Kontwolè Pye bwa sèn.
c. Nan la Itilite yo fenèt, louvri a Atribi Enspektè.
d. Nan tèt enspektè atribi a, mete Kalite bouton nan Sistèm.
e. Nan dezyèm gwoup la nan anviwònman, chwazi Default pou Eta konfigirasyon.
f. Nan dezyèm gwoup la nan anviwònman, lage anviwònman an Imaj.
g. Chwazi Login ak bouton grafik Amazon ou ajoute nan pwojè a. Pa chwazi vèsyon an 2x: li pral chaje otomatikman sou aparèy ekspozisyon dansite segondè (retin).
h. Mete imaj la menm pou anviwònman an background.
i. Si ou vle presize yon vèsyon bourade nan bouton an, chwazi Chwazi pou Eta konfigirasyon, epi mete Imaj la nan vèsyon an _Pressed nan bouton ou an.
j. Sou senaryo a, ajiste gwosè bouton ou pou akomode imaj la, si sa nesesè.
Sèvi ak sdk la pou iOS APIs
Nan seksyon sa a, ou pral ajoute kòd nan pwojè ou a siyen nan yon itilizatè ak Login ak Amazon.
Gade sijè sa yo:
- Manyen bouton an Login epi pou yo jwenn Profile Done
- Tcheke pou Login Itilizatè nan demaraj
- Klè Otorizasyon Eta epi soti yon itilizatè
Seksyon sa a eksplike kijan pou rele authorizeUserForScopes: delege: epi getProfile: APIs konekte nan yon itilizatè ak rekipere pro yofile done. Sa gen ladann kreye yon onLoginButtonClicked: koute pou Login ou a ak bouton Amazon.
- Add Login ak Amazon nan pwojè iOS ou. Gade Enstale Login a ak Amazon Bibliyotèk.
- Enpòte Login a ak Amazon API nan sous ou file.
Pou enpòte Login a ak Amazon API, ajoute bagay sa yo #deklarasyon enpòtasyon nan sous ou file:# enpòtans - Kreye a AMZNAuthorizeUserDelegateclass pou aplike
AIAuthenticationDelegate.
Lè authorizeUserForScopes: delege: konplete, li pral rele la demandDidSucceed: or requestDidFail: metòd sou yon objè ki aplike a AIAuthenticationDelegate pwotokòl.@ Interface AMZNAuthorizeUserDelegate: NSObject @ fen Pou plis enfòmasyon, gade Travay ak pwotokòl sou developer.apple.com.
- Rele authorizeUserForScopes: delege: in onLoginButtonClicked.
Si ou swiv etap sa yo nan Ajoute yon Login ak bouton Amazon nan App ou an, ou ta dwe gen yon onLoginButtonClicked: metòd lye nan yon Login ak bouton Amazon. Nan metòd sa, rele authorizeUserForScopes: delege: nan pouse itilizatè a ouvri sesyon an epi otorize aplikasyon w lan.
Metòd sa a pral pèmèt itilizatè a siyen epi konsanti enfòmasyon yo mande yo nan youn nan fason sa yo:
1.) Chanje nan web view nan yon kontèks ki an sekirite (si app Amazon Shopping la enstale sou aparèy la)
2.) Chanje Safari View Kontwolè (sou iOS 9 ak pita)
3.) Chanje nan navigatè sistèm lan (sou iOS 8 ak pi bonè)
Kontèks ki an sekirite pou premye opsyon a disponib lè se app Amazon Shopping enstale nan aparèy la. Si itilizatè a deja siyen nan Amazon Shopping app a, siyen nan paj la sote, ki mennen nan yon Single Sign-On (SSO) eksperyans.Lè aplikasyon w lan otorize, li otorize pou youn oswa plis ansanm done ke yo rekonèt kòm dimansyon. Premye paramèt la se yon etalaj de dimansyon ki kouvri done yo itilizatè w ap mande soti nan Login ak Amazon. Premye fwa yon itilizatè ouvri sesyon an nan app ou, yo pral prezante ak yon lis nan done yo w ap mande epi yo mande pou apwobasyon. Login ak Amazon kounye a sipòte twa dimansyon: profile, ki gen non itilizatè a, adrès imel, ak id kont Amazon; profile: itilizatè_id, ki gen sèlman id kont Amazon; ak Kòd postal, ki gen postal / postal postal itilizatè a.
Dezyèm paramèt la authorizeUserForScopes: delege: se yon objè ki aplike a AIA Otantifikasyon Pwotokòl Delege, nan ka sa a yon egzanp nan la AMZNAuthorizeUserDelegate klas.- (IBAction) onLogInButtonClicked: (id) moun k la {
// Fè otorize apèl nan sdk yo ka resevwa yon siy aksè sekirite
// pou itilizatè a.
// Pandan y ap fè premye apèl la ou ka presize minimòm debaz la
// dimansyon nesesè.// Mande tou de dimansyon pou itilizatè aktyèl la.
NSArray * requestScopes =
[NSArray arrayWithObjects: @ ”profile”, @” Postal_code ”, nil];AMZNAuthorizeUserDelegate * delege =
[AIMobileLib authorizeUserForScopes: requestScopes delege: delege];
[[AMZNAuthorizeUserDelegate alloc] initWithParentController: pwòp tèt ou];Add header aplikasyon delege ou nan klas la rele
authorizeUserForScopes :. Pou egzanpample:#import "AMZNAuthorizeUserDelegate.h" - Kreye yon AMZNGetProfileDelege.
AMZNGetProfileDelege non nou pou yon klas ki aplike a
AIA Otantifikasyon Pwotokòl Delege, epi yo pral trete rezilta a nan la getProfile: rele. Tankou authorizeUserForScopes: delege :, getProfile: sipòte a demandDidSucceed: epi requestDidFail: metòd pwotokòl. demandDidSucceed: resevwa yon APIResult objè ak profile done nan pwopriyete a rezilta. requestDidFail: resevwa yon AIError objè ak enfòmasyon sou erè a nan pwopriyete a erè.
Pou kreye yon klas delege nan yon deklarasyon klas nòmal, enpòte
AIAuthenticationDelegate.hand ajoute pwotokòl la nan deklarasyon an nan header klas ou a file:# enpòtans @ entèfas AMZNGetProfileDelege: NSObject @ end - Aplike requestDidSucceed: pou ou AMZNAuthorizeUserDelegate. In requestDidSucceed :, rele getProfile: rekipere pro kliyan anfile. getProfile:, tankou authorizeUserForScopes: delege :, itilize pwotokòl AIAuthenticationDelegate.
- (anile) requestDidSucceed: (APIResult *) apiResult {
// Kòd ou apre itilizatè a otorize aplikasyon pou
// mande dimansyon.// Chaje nouvo view kontwolè ak itilizatè idantifye enfòmasyon
// kòm itilizatè a kounye a avèk siksè louvri sesyon an.AMZNGetProfileDelege * delege =
[[AMZNGetProfileDelege alloc] initWithParentController:paranViewKontwolè] autorelease];
[AIMobileLib getProfile: delege];
}Add header aplikasyon delege ou nan klas la rele getProfile:. Forexample:
#import "AMZNGetProfileDelegate.h ” - Aplike demandDidSucceed: pou ou AMZNGetProfileDelege.
requestDidSucceed: gen de travay prensipal: rekipere pro lafile done ki soti nan APIResult, epi yo pase done yo nan UI la.
Rekipere pro lafile done ki soti nan APIResult, jwenn aksè nan pwopriyete a rezilta. Pou yon getProfile: repons, pwopriyete sa a ap gen yon diksyonè valè pwopriyete pou itilizatè a profile pwopriyete. Pro lafile pwopriyete yo non, imèl, epi user_id pou pro lafile dimansyon ak
postal_code pou la postal_code dimansyon.- (anile) requestDidSucceed: (APIResult *) apiResult {
// Jwenn profile demann reyisi. Debake pro afile enfòmasyon
// epi pase li bay paran an view kontwolèNSString * non = [(NSDictionary *) apiResult.result
objectForKey: @ ”non”];
NSString * imèl = [(NSDictionary *) apiResult.result
objectForKey: @ ”imèl”];
NSString * user_id = [(NSDictionary *) apiResult.result
objectForKey: @ ”user_id”];
NSString * postal_code = [(NSDictionary *) apiResult.result
objectForKey: @ ”postal_code”];// Pase done yo view kontwolè
} - Aplike requestDidFail: pou ou AMZNGetProfileDelege.
requestDidFail: gen ladann yon APIError objè ki gen detay sou erè a. showLogInPageis yon metòd ipotetik ki ta Reyajiste prensipal la view kontwolè yo montre Login a ak bouton Amazon.- (anile) requestDidFail: (APIError *) errorResponse {
// Jwenn Profile demann echwe pou profile dimansyon.
// Si kòd erè = kAIApplicationNotAuthorized,
// pèmèt itilizatè a ouvri sesyon an ankò.
si (errorResponse.error.code == kAIApplicationNotAuthorized) {
// Montre otorize bouton itilizatè.
[paranViewKontwolè showLogInPage];
}
lòt bagay {
// Manyen lòt erè
[[[[UIAlertView alloc] initWithTitle: @ ”” mesaj: [NSString
stringWithFormat: @ "Erè ki te fèt ak mesaj:% @",
errorResponse.error.message] delege: nil
cancelButtonTitle: @ ”OK” otherButtonTitles: nil] autorelease] show];
}
} - Aplike requestDidFail: pou ou AMZNAuthorizeUserDelegate.
- (anile) requestDidFail: (APIError *) errorResponse {
NSString * mesaj = errorResponse.error.message;
// Kòd ou a lè otorizasyon an echwe. [[[[UIAlertView alloc] initWithTitle: @ ”” mesaj: [NSString
stringWithFormat: @ "Otorizasyon itilizatè echwe ak mesaj:% @", errorResponse.error.message] delege: nil
cancelButtonTitle: @ ”OK” otherButtonTitles: nil] autorelease] show];
}10. Aplike aplikasyon: louvriURL: sourceApplication: anotasyon: nan klas la nan pwojè ou ki okipe la UIApplicationDelegate pwotokòl (pa default sa a pral AppDelegateclass nan pwojè ou). Lè app a prezante paj la login Amazon, ak itilizatè a konplete login, li pral redireksyon nan app a lè l sèvi avèk la URL Scheme app a anrejistre pi bonè. Se ke redireksyon pase nan aplikasyon: louvriURL: sourceApplication: anotasyon :, ki retounen WI si la URL te manyen avèk siksè. okipeOuvriURL: sous Aplikasyon: se yon fonksyon bibliyotèk SDK ki pral okipe Login ak Amazon redireksyon URLs pou ou. Si okipeOuvriURL: sourceApplication: retounen WI, Lè sa a, la URL te okipe.
- (BOOL) aplikasyon: (UIApplication *) aplikasyon
louvriURL: (NSURL *)url
sourceApplication: (NSString *) sourceApplication
anotasyon: (id) anotasyon
{
// Pase sou la url nan sdk la analize kòd otorizasyon // soti nan la url.
BOOL isValidRedirectSignInURL =
[AIMobileLib manchOpenURL:url
sourceAppli cation: sour ceApplicati on);
if (! isValidRedirect Si gnlnURL)
retounen NON;
// App ka al konsa vle manyen e url retounen WI;
}REMAK: Metòd sa a se obsolèt nan iOS 9 men yo ta dwe enkli nan pwojè ou a kenbe sipò pou itilizatè yo sou tribin ki pi gran. Pou plis enfòmasyon sou aplikasyon: louvriURL: sourceApplication: anotasyon :, wè UIApplicationDelegate Referans Pwotokòl sou developer.apple.com.
Tcheke pou Login Itilizatè nan demaraj
Si yon itilizatè ouvri sesyon nan app ou, fèmen app a, epi rekòmanse app a pita, app a toujou otorize pou rekipere done yo. Itilizatè a pa louvri sesyon otomatikman. Nan demaraj, ou ka montre itilizatè a kòm louvri sesyon an si se app ou toujou otorize. Seksyon sa a eksplike kijan pou itilize
getAccessTokenForScopes: withOverrideParams: delege: pou wè si app a toujou otorize.
- Kreye yon AMZNGetAccessTokenDelegate klas. AMZNGetAccessTokenDelegateimplements la AIAuthenticationDelegate pwotokòl, epi yo pral travay sou rezilta a nan
getAccessTokenForScopes: withOverrideParams: delege: rele. AIAuthenticationDelegate gen de metòd, demandDidSucceed: epi requestDidFail :. requestDidSucceed: resevwa yon APIResult objè ak done siy, pandan y ap requestDidFail: resevwa yon APIError objè ak enfòmasyon sou erè a.# enpòtans @ Interface AMZNGetAccessTokenDelegate: NSObject
@fen
Add header aplikasyon delege ou nan klas la rele
getAccessTokenForScopes: withOverrideParams: delege :. Forexample:#import "AMZNGetAccessTokenDelegate.h" - Sou demaraj app, rele
getAccessTokenForScopes: withOverrideParams: delege: pou wè si aplikasyon an toujou otorize. getAccessTokenForScopes: withOverrideParams: delege: rekipere siy aksè anvan tout koreksyon ki Login ak Amazon itilize pou jwenn aksè nan yon kliyan profile. Si metòd la reyisi, app a toujou otorize ak yon apèl nan getProfile: ta dwe reyisi. getAccessTokenForScopes: withOverrideParams: delege: itilize a AIAuthenticationDelegate pwotokòl nan menm fason ak authorizeUserForScopes: delege :. Pase objè a mete ann aplikasyon pwotokòl la kòm paramèt delege la.- (anile) checkIsUserSignedIn {
AMZNGetAccessTokenDelegate * delege =
[[[AMZNGetAccessTokenDelegate alloc] initWithParentController:self] autorelease];
NSArray * requestScopes =
[NSArray arrayWithObjects: @ ”profile”, @” Postal_code ”, nil]; [AIMobileLib getAccessTokenForScopes: requestScopes withOverrideParams: nil delege: delege];
} - Aplike demandDidSucceed: sou ou AMZNGetAccessTokenDelegate. demandDidSucceed: gen yon sèl travay: yo rele getProfile:. Ansyen sa aample apèl getProfile: lè l sèvi avèk menm koute ou te deklare nan seksyon anvan an (gade etap 6-8).
#import "AMZNGetProfileDelegate.h ”
# enpòtans- (anile) requestDidSucceed: (APIResult *) apiResult {
// Kòd ou a itilize aksè siy ale isit la.// Depi aplikasyon an gen otorizasyon pou sijè ki abòde nou yo, nou kapab
[AIMobileLib getProfile: delege];
// jwenn itilizatè a profile.
AMZNGetProfileDelege * delege = [[[AMZNGetProfileDelege alloc] initWithParentController: paranViewKontwolè] autorelease];
} - Aplike requestDidFail: sou ou AMZNGetAccessTokenDelegate.
requestDidFail: gen ladann yon APIError objè ki gen detay sou erè a. Si ou resevwa yon erè, ou ka Reyajiste prensipal la view kontwolè yo montre Login a ak bouton Amazon.- (anile) requestDidFail: (APIError *) errorResponse {
// Kòd ou a okipe echwe Rekipere nan aksè siy.
// Si kòd erè = kAIApplicationNotAuthorized, pèmèt itilizatè
// pou konekte ankò.
si (errorResponse.error.code == kAIApplicationNotAuthorized) {
// Montre Login ak bouton Amazon.
}
lòt bagay {
// Manyen lòt erè
[[[[UIAlertView alloc] initWithTitle: @ ”” mesaj: [NSString
stringWithFormat: @ "Erè ki te fèt ak mesaj:% @", errorResponse.error.message] delege: nil
cancelButtonTitle:@”OK” otherButtonTitles:nil] autorelease] montre];
}
}
La clearAuthorizationState: metòd pral klè done otorizasyon itilizatè a soti nan la AIMobileLib magazen done lokal yo. Yon itilizatè ap gen ouvri sesyon an ankò nan lòd pou app a rekipere profile done. Sèvi ak metòd sa a pou konekte yon itilizatè, oswa pou rezoud pwoblèm koneksyon nan app a.
- Deklare yon AMZNLogoutDelegate. Sa a se yon klas ki aplike a
AIAutenticationDelegateprotocol. Pou rezon nou yo, nou ka eritye klas la nan NSObject:
# enpòtans @interface AMZNLogoutDelegate NSObject
@fen
Add header aplikasyon delege ou nan klas la rele clearAuthorizationState :. Pou egzanpample:
#import "AMZNLogoutDelegate.h" - Rele clearAuthorizationState :.
Lè yon itilizatè te ouvri sesyon an avèk siksè, ou ka bay yon mekanis pou li ka efase done otorizasyon yo. Mekanis ou ta ka yon lyen, oswa yon atik meni, men pou senaryo sa a ansyen anample pral kreye yon LogoutButtonClickedmethod pou yon bouton Logout.- (IBAction) LogoutButtonClicked: (id) moun k la {
AMZNLogoutDelegate* delegate = [[[AMZNLogoutDelegate alloc] initWithParentController:self] autorelease]; [AIMobileLib clearAuthorizationState:delegate];
}Paramèt la sèlman nan clearAuthorizationState se yon AIAuthenticationDelegate ki aplike demandDidSucceed: epi requestDidFail :.
- Aplike requestDidSucceed :. Metòd sa a pral rele lè enfòmasyon itilizatè a otorize. Ou ta dwe Lè sa a, montre yo kòm louvri sesyon.
- (anile) requestDidSucceed: (APIResult *) apiResult {
// Lojik adisyonèl ou apre otorizasyon itilizatè a
// leta otorize.
[[UIAlertView alloc] initWithTitle: @ "" mesaj: @ "Itilizatè D '."
delegate:nil cancelButtonTitle:@”OK” otherButtonTitles:nil] montre];
} - Aplike requestDidFail :. Metòd sa a pral rele si pou kèk rezon enfòmasyon itilizatè a pa ka otorize soti nan kachèt la. Nan ka sa a, ou pa ta dwe montre yo kòm louvri sesyon.
- (anile) requestDidFail: (APIError *) errorResponse {
// Lojik adisyonèl ou apre sdk la echwe pou pou klè
// eta otorizasyon an. [[[[UIAlertView alloc] initWithTitle: @ ”” mesaj: [NSString
stringWithFormat: @ "Logout Itilizatè echwe ak mesaj:% @",
errorResponse.error.message] delege: nil
cancelButtonTitle:@”OK” otherButtonTitles:nil] autorelease] montre];
}
Teste Entegrasyon ou
Lanse app ou nan yon aparèy iOS oswa similatè ak konfime ou ka ouvri sesyon an ak kalifikasyon Amazon.com ou.
Nòt: Lè w ap fè tès sou similatè iOS10, ou ka wè mesaj erè APIKey pou aplikasyon an valab pou yon demann authorizeUserForScopes, oswa kòd erè enkoni pou yon demann clearAuthorizationState. Sa a se yon li te ye ensèk ak Apple ki rive lè sdk la ap eseye jwenn aksè nan kechen an. Jiskaske Apple rezoud pinèz la, ou ka travay bò kote li lè ou pèmèt Keychain Pataje pou app ou anba tab Kapasite sib app ou an. Ensèk sa a sèlman enpak simulateur. Ou ka fè tès sou aktyèl iOS10 aparèy san yo pa itilize nenpòt solisyon.
Login ak Amazon pou kòmanse Gid pou iOS Version 2.1.2 - Telechaje [optimisé]
Login ak Amazon pou kòmanse Gid pou iOS Version 2.1.2 - Telechaje