Log ind med Amazon Kom godt i gang-guide til Android
Login med Amazon: Kom godt i gang Guide til Android
Copyright © 2016 Amazon.com, Inc., eller dets tilknyttede selskaber. Alle rettigheder forbeholdes. Amazon og Amazon-logoet er varemærker tilhørende Amazon.com, Inc. eller dets datterselskaber. Alle andre varemærker, der ikke ejes af Amazon, tilhører deres respektive ejere.
Kom godt i gang til Android
I denne guide viser vi dig, hvordan du tilføjer Login med Amazon til din Android-app. Efter at have fuldført denne vejledning bør du have en fungerende Login med Amazon-knap i din app, så brugere kan logge ind med deres Amazon-legitimationsoplysninger.
Installation af Android-udviklerværktøjer
Login med Amazon SDK til Android hjælper dig med at tilføje Login med Amazon til din Android-applikation. Vi anbefaler, at du bruger Login med Amazon SDK til Android fra developer.amazon.com med Android Studio. Du kan dog også bruge Eclipse med ADT-plugin. For trin til, hvordan du installerer Android Studio og opsætning af Android SDK, se Hent Android SDK på developer.android.com.
Når Android SDK er installeret, skal du finde SDK Manager applikation i din Android-installation. For at udvikle til Login med Amazon skal du bruge SDK Manager til at installere SDK Platformen til Android 2.2 eller nyere (API version 8). Se Tilføjelse af SDK-pakker på developer.android.com for at få flere oplysninger om brug af SDK
Efter installation af SDK skal du oprette en Android Virtual Device (AVD) til at køre dine apps. Se Ledelse Virtuelle enheder på developer.android.com for instruktioner om opsætning af en virtuel enhed.
Når dit udviklingsmiljø er indstillet, kan du Installer login med Amazon SDK til Android or Kør Sample Appsom beskrevet nedenfor.
Installer login med Amazon SDK til Android
Login med Amazon SDK til Android findes i to pakker. Den første indeholder Android -biblioteket og understøttende dokumentation. Den anden indeholder somampen applikation, der tillader en bruger at logge ind og viser deres profile data.
Hvis du ikke allerede har installeret Android SDK eller Android Development Tools, se Installerer Android Developer Tools afsnit ovenfor.
- Download lynlås og udtrække files til en mappe på din harddisk.
Du skulle se en dok og en lib undermappe. - Åben doc/index.html til view login med Amazon Android API
- Se Installer login med Amazon Library, for instruktioner om, hvordan du tilføjer biblioteket og dokumentationen til en Android
Når login med Amazon SDK til Android er installeret, kan du Opret et nyt login med Amazon Projekt, efter Registrering med Login med Amazon .
Kør Sample App
For at køre sample ansøgning, importer sampind i et AndroidStudio-arbejdsområde (hvis du bruger Eclipse, skal du også tilføje et brugerdefineret debug-nøglelager til arbejdsområdet. Se Tilføj Custom Debug Keystore i Eclipse afsnit nedenfor). API-nøglen, som sampapplikationsbrug kræver, at arbejdsområdet bruger det nøglelager, der leveres med sample. Hvis det brugerdefinerede nøglelager ikke er installeret, vil brugerne ikke være i stand til at logge på ved hjælp af sample. Nøglelageret hentes automatisk, hvis du bruger AndroidStudio.
- Download SampleLoginWithAmazonAppForAndroid-src.zip og udtrække files til et bibliotek på din harddisk
- Start Android Studio, og vælg Åbn et eksisterende Android Studio-projekt
- Gå til SampleLoginWithAmazonApp bibliotek hentet efter udtrækning af den downloadede zip file i trin
- Fra Byg menu, klik Lav projekt, og vent på, at projektet skal
- Fra Løbe menu, klik Løbe og klik derefter på SampleLoginWithAmazonApp.
- Vælg emulatoren eller den tilsluttede Android-enhed, og klik Løbe.
Tilføj Custom Debug Key-lageret i Eclipse
Hvis du bruger Eclipse, skal du følge instruktionerne nedenfor for at tilføje det brugerdefinerede debug-nøglelager:
- I den Præferencer dialog, vælg Android og Byg.
- Ved siden af Skik Debug Keystore, klik Gennemse.
- Naviger til sample app-biblioteket og vælg 3p.nøglelager, og klik derefter OK.
Registrering med Login med Amazon
Før du kan bruge Login med Amazon på en webwebsted eller i en mobilapp, skal du registrere en applikation med Login med Amazon. Dit Login med Amazon-applikation er registreringen, der indeholder grundlæggende oplysninger om din virksomhed og oplysninger om hver webwebsted eller mobilapp, du opretter, og som understøtter Login med Amazon. Disse forretningsoplysninger vises for brugerne, hver gang de bruger Login med Amazon på din webwebsted eller mobilapp. Brugere vil se navnet på din applikation, dit logo og et link til din privatlivspolitik. Disse trin viser, hvordan du registrerer et login med Amazon-applikation og tilføjer en Android-app til den konto.
Se følgende emner:
- Registrer dit login med Amazon-applikationen
- Registrer din Android-app
- Tilføj en Android-app til Amazon Appstore
- Tilføj en Android-app uden Appstore
- Android App-signaturer og API-nøgler
- Bestemmelse af en Android-appsignatur
- Henter en Android API-nøgle
Registrer dit login med Amazon-applikationen
- Gå til https://login.amazon.com.
- Hvis du har tilmeldt dig Login med Amazon før, skal du klikke på App-konsol. Ellers klik Tilmeld dig. Du vil blive omdirigeret til Seller Central, som håndterer ansøgningsregistrering til login med. Hvis det er første gang du bruger Seller Central, bliver du bedt om at oprette en Seller Central-konto.
- Klik Registrer ny ansøgning. De Registrer din ansøgning formular vises:
a. I den Registrer din ansøgning formular, indtast en Navn og en Beskrivelse til din ansøgning.
De Navn er det navn, der vises på samtykkeskærmen, når brugere accepterer at dele oplysninger med din applikation. Dette navn gælder for Android, iOS og webwebstedsversioner af din applikation.
b. Indtast en Bekendtgørelse om beskyttelse af personlige oplysninger URL til din ansøgning
De Bekendtgørelse om beskyttelse af personlige oplysninger URL er placeringen af din virksomheds eller applikations privatlivspolitik (f.eksample, http://www.example.com/privacy.html). Dette link vises til brugere på samtykkeskærmen.
c. Hvis du vil tilføje en Logo billede for din ansøgning, klik Gennemse og find det relevante billede.
Dette logo vises på login- og samtykkeskærmen for at repræsentere din virksomhed eller webwebsted. Logoet vil blive krympet til 50 pixels i højden, hvis det er højere end 50 pixels; der er ingen begrænsning på logoets bredde - Klik Spare. Din sampregistreringen skal se sådan ud:
Når dine grundlæggende applikationsindstillinger er gemt, kan du tilføje indstillinger for specifikke webwebsteder og mobilapps, der vil bruge dette Login med Amazon -konto.
Registrer din Android-app
For at registrere en Android-app har du valget mellem at registrere en app via Amazon Appstore (Tilføj en Android-app til Amazon Appstore, s. 8) eller direkte med Login med Amazon (Tilføj en Android App uden Appstore, s. 9). Når din app er registreret, vil du have adgang til en API-nøgle, der giver din app adgang til login med Amazon-autorisationstjenesten.
Note: Hvis du planlægger at bruge Amazon Device Messaging i din Android-app, bedes du kontakte lwa- support@amazon.com med:
- E-mailadressen på den Amazon-konto, du brugte til at tilmelde dig Login med Amazon.
- E-mail-adressen på den Amazon-konto, du brugte til at tilmelde dig Amazon Appstore (hvis den er anderledes).
- Navnet på din Seller Central-konto. (På Seller Central, klik Indstillinger> Kontooplysninger> Sælgeroplysninger, og brug Vist navn).
- Navnet på din Amazon Appstore-udviklerkonto. (På webstedet for distribution af mobilapps skal du klikke Indstillinger > Selskab Profile og bruge Udviklernavn eller firmanavn).
Tilføj en Android-app til Amazon Appstore
Følgende trin tilføjer en Amazon Appstore-app til dit login med Amazon-konto:
- Klik på fra applikationsskærmen Android-indstillinger. Hvis du allerede har en Android-app registreret, skal du kigge efter Tilføj API-nøgle knappen i Android-indstillinger
De Android applikationsoplysninger formular vises: - Vælge Ja som svar på spørgsmålet "Distribueres denne applikation via Amazon Appstore?"
- Indtast Mærke af din Android -app. Dette behøver ikke at være det officielle navn på din app. Det identificerer ganske enkelt denne særlige Android -app blandt apps og webwebsteder, der er registreret til din Login med Amazon-applikation.
- Tilføj din Amazon Appstore-id.
- Hvis du selv har signeret din app, skal du tilføje selvsigneringsoplysninger. Dette giver dig mulighed for at få en API-nøgle under udvikling uden at bruge Appstore direkte:
a. Hvis din app ikke bliver signeret gennem Amazon Appstore, skal du vælge Ja som svar på spørgsmålet "Er denne applikation selvsigneret?"
De Android applikationsoplysninger formularen udvides:
b. Indtast din Pakkenavn.
Dette skal matche pakkenavnet på dit Android-projekt. For at bestemme pakkenavnet på dit Android-projekt skal du åbne projektet i dit valg af Android-udviklerværktøj.
Åben AndroidManifest.XML i Package Explorer, og vælg Manifest fanen. Den første post er Pakkenavnet.
c. Gå ind i appen Signatur.
Dette er en SHA-256 hashværdi, der bruges til at verificere din ansøgning. Signaturen skal være i form af 32 hexadecimale par adskilt af kolon (f.eksampdet: 01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef:01: 3:45:67:89:a b:cd:ef). Se Android App-signaturer og API-nøgler til trin, du kan bruge til at udtrække signaturen fra dit projekt. - Klik Spare.
Hvis forskellige versioner af din app har forskellige signaturer eller pakkenavne, f.eks. For en eller flere testversioner og en produktionsversion, kræver hver version sin egen API-nøgle. Fra Android-indstillinger i din app skal du klikke på Tilføj API-nøgle knap for at oprette yderligere nøgler til din app (en pr. version).
Android App-signaturer og API-nøgler
Appens signatur er en SHA-256 hash-værdi, der anvendes på alle Android-apper, når den er bygget. Amazon bruger appsignaturen til at konstruere din API-nøgle. API-nøglen gør det muligt for Amazon-tjenester at genkende din app. Hvis du bruger Amazon Appstore til at underskrive din app, leveres API-nøglen automatisk. Hvis du ikke bruger Amazon Appstore, skal du administrere din API-nøgle manuelt.
App-signaturer gemmes i et nøglelager. Generelt er der for Android-apps et debug-nøglelager og et frigivelsesnøglelager. Debug-nøglelageret er oprettet af Android Development Tools plugin til Eclipse og bruges som standard. Du kan finde placeringen af debug-nøglelageret i Eclipse ved at klikke Vindue, og derefter vælge Præferencer > Android > Byg. Fra denne skærm kan du også tilføje dit eget debug-nøglelager. Til Android Studio, fra Byg menu, vælg Rediger byggetyper, så gå til Underskriver fanen, og find fejlretningsnøglelageret i Butik File felt.
En release keystore oprettes normalt, når du eksporterer din Android -app for at oprette en underskrevet APK file.
Gennem eksportprocessen, hvis du opretter et nyt udgivelsesnøglelager, vil du vælge dets placering. Ved
standard vil den blive placeret på samme placering som din standardfejlfinding KeyStore.
Hvis du har registreret din app ved hjælp af fejlretningssignaturen under udviklingen, skal du tilføje en ny Android-indstilling til din applikation, når du er klar til at frigive appen. Den nye appindstilling skal bruge signaturen fra frigivelsestasten.
Se Undertegnelse af dine applikationer på developer.android.com for mere information.
Bestem Android App-underskrift
- Hvis du har en underskrevet APK file:
a. Pak APK ud file og ekstrakt CERT.RSA. (Du kan omdøbe APK-udvidelsen til ZIP, hvis det er nødvendigt).
b. Fra kommandolinjen skal du køre:nøgleværktøj -printcert -file CERT.RSA Keytoolis placeret i beholder katalog over din Java-installation.
- Hvis du har en nøglebutik file:
a. Fra kommandolinjen skal du køre:keytool -list -v -alias -nøglebutikfilenavn> Nøgleværktøj er placeret i bin-mappen i din Java-installation. Aliaset er navnet på den nøgle, der bruges til at signere appen.
b. Indtast adgangskoden til nøglen, og tryk på Indtast. - Under Certifikat Fingeraftryk, kopiere SHA256 værdi.
Hent Android API-nøglen
Når du har registreret en Android -indstilling og givet en appsignatur, kan du hente API -nøglen fra registreringssiden til dit Login med Amazon -program. Du bliver nødt til at placere denne API -nøgle i en file i dit Android -projekt. Indtil du gør det, er appen ikke autoriseret til at kommunikere med Login med Amazon -autorisationstjeneste.
- Gå til https://login.amazon.com.
- Klik App-konsol.
- I den Ansøgninger boks til venstre, vælg din
- Find din Android-app under Android-indstillinger (Hvis du endnu ikke har registreret en Android-app, se Tilføj en Android-app til Amazon Appstore).
- Klik Generer API-nøgleværdi. Et pop op-vindue vil vise din API-nøgle. Klik på for at kopiere nøglen Vælg alle for at vælge det hele
Note: API-nøgleværdien er delvist baseret på det tidspunkt, den genereres. Således kan efterfølgende API-nøgleværdi(er), du genererer, afvige fra originalen. Du kan bruge enhver af disse API-nøgleværdier i din app, da de alle er gyldige. - Se Føj din API-nøgle til dit projekt for instruktioner om, hvordan du tilføjer API-nøglen til din Android
Oprettelse af et login med Amazon Project
I dette afsnit lærer du, hvordan du opretter et nyt Android-projekt til login med Amazon, konfigurerer projektet og tilføjer kode til projektet for at logge på en bruger med Login med Amazon. Vi beskriver trinene til Android Studio, men du kan anvende analoge trin til ethvert IDE- eller Android-udviklingsværktøj efter eget valg.
Se følgende emner:
- Opret et nyt login med Amazon Project
- Installer login med Amazon Library
- Aktiver Content Assist for login med Amazon Library
- Indstil netværkstilladelser til din app
- Føj din API-nøgle til dit projekt
- Fjern Sample App Custom Debug Keystore
- Håndter konfigurationsændringer for din aktivitet
- Tilføj en godkendelsesaktivitet til dit projekt
- Føj et login med Amazon-knap til din app
- Håndter Login-knappen og Get Profile Data
- Se efter brugerlogin ved opstart
- Ryd autorisationstilstand og log en bruger af
- Ring til Amazon Authorization Manager Methods Synchronously
Opret et nyt login med Amazon Project
Hvis du endnu ikke har et app-projekt til brug af Login med Amazon, skal du følge instruktionerne nedenfor for at oprette et. Hvis du har en eksisterende app, skal du springe til Installer login med Amazon Library .
- Lancering Android udviklingsværktøj.
- Fra File menu, vælg Ny og Projekt.
- Indtast en Ansøgningsnavn og Firmanavn for din
- Indtast Ansøgning og firmanavn svarende til det pakkenavn, du valgte, da du registrerede din app med Login hos Amazon.
Hvis du ikke har registreret din app endnu, skal du vælge en Pakkenavn og følg derefter instruktionerne i Registrering med Login med Amazon sektion, efter du har oprettet dit projekt. Hvis pakkenavnet på din app ikke matcher det registrerede pakkenavn, vil dit login med Amazon-opkald ikke lykkes. - Vælg en Minimum krævet SDK af API 8: Android 2 (Froyo) eller højere, og klik Næste.
- Vælg den type aktivitet, du vil oprette, og klik på Næste.
- Udfyld de relevante detaljer og klik Slutte.
Du får nu et nyt projekt i dit arbejdsområde, som du kan bruge til at kalde Login med Amazon.
Installer login med Amazon Library
Hvis du endnu ikke har downloadet Login med Amazon SDK til Android, se Installer login med Amazon SDK til Android (s. 4).
- Med dit projekt åbent i Android Developer Tools, i Projekt Explorer, højreklik på din Projekt.
- Hvis en mappe kaldes libs ikke allerede er til stede, opret
- Kopier login-med-amazon-sdk.jar file fra File System, og indsæt det derefter i libs mappe under dit projekt/app.
- Højreklik login-med-amazon-sdk.jar, og tjek Tilføj som bibliotek
Aktiver Content Assist for login med Amazon Library i Eclipse
For at aktivere Eclipse-indholdsassistentstøtten i et Android-projekt kræver det brug af en .ejendomme file. For mere information om indholdshjælp, se Indhold/Code Assist onhelp.eclipse.org.
For at aktivere Eclipse-indholdsassistentstøtten i et Android-projekt kræver det brug af en .ejendomme file. For mere information om indholdshjælp, se Indhold/Code Assist onhelp.eclipse.org.
- In Windows Stifinder, naviger til dokumenter mappe til Login med Amazon SDK til Android og kopier mappen til
- Med dit projekt åbent, gå til Pakke Explorer og vælg libs Klik Redigere fra hovedmenuen, og vælg Indsæt. Du skulle nu have en libs\docs vejviser.
- Vælg libs Klik File fra hovedmenuen, og vælg Ny ogFile.
- I den Ny File dialog, indtast login-med-amazon-sdk.jar.properties og klik Slutte.
- Eclipse skal åbne login-med-amazon-sdk.jar.properties i teksteditoren. I teksteditoren skal du tilføje følgende linje til file:
doc=docs - Fra File menu, klik Spare.
- Du skal muligvis genstarte Eclipse for at ændringerne træder i kraft
Indstil netværkstilladelser til din app
For at din app kan bruge Login med Amazon, skal den have adgang til internettet og få adgang til netværksstatusoplysninger. Din app skal hævde disse tilladelser i dit Android-manifest, hvis den ikke allerede gør det.
NOTE: Proceduretrinene nedenfor er specifikke for tilføjelse af tilladelserne i Eclipse. Hvis du bruger Android Studio eller en anden IDE, kan du springe alle de nummererede trin over nedenfor. Kopier i stedet de kodelinjer, der vises under skærmbilledet, og indsæt dem i AndroidManifest.xml fileuden for applikationsblokken.
- In Pakke Explorer, dobbeltklik xml.
- På Tilladelser fanen, klik Tilføje.
- Vælge Bruger tilladelse og klik OK.
- Til højre for Tilladelser, find Attributter til brugstilladelse
- I den Navn boks, indtast tilladelse. INTERNET eller vælg det fra rullemenuen.
- På Tilladelser fanen, klik Tilføje
- Vælge Bruger tilladelse og klik OK.
- I den Navn boks, indtast tilladelse.ACCESS_NETWORK_STATE eller vælg det fra rullemenuen
- Fra File menu, klik Spare.
Dine manifesttilladelser skal nu have følgende værdier:
I den AndroidManifest.xml fanen, skulle du nu se disse poster under manifestelementet:
Føj din API-nøgle til dit projekt
Når du registrerer din Android-applikation med Login med Amazon, får du en API-nøgle. Dette er en identifikator, som Amazon Authorization Manager bruger til at identificere din applikation til Login med Amazon-autorisationstjeneste. Hvis du bruger Amazon Appstore til at underskrive din app, leverer Appstore automatisk API-nøglen. Hvis du ikke bruger Amazon Appstore, indlæser Amazon Authorization Manager denne værdi ved kørsel fra api_key.txt file i aktiver vejviser.
- Hvis du ikke har din API-nøgle endnu, skal du følge instruktionerne i Hent Android API-nøglen (s. 11).
- Med dit ADT-projekt åbent, fra kl File menu, klik Ny og vælg Unavngivet tekst File. Du skulle nu have et redigeringsvindue til en tekst file navngivet Uden titel 1. Føj din API-nøgle til teksten
- Fra File menu, klik Gem som.
- I den Gem som Vælg dialogboksen aktiver bibliotek for dit projekt som den overordnede mappe. Til File navn, indtast txt.
Fjern Sample App Custom Debug Keystore
NOTE: Dette trin er kun påkrævet, hvis du bruger Eclipse; Hvis du bruger Android Studio, skal du springe dette afsnit over.
Hvis du har installeret Login med Amazon til Android sampapplikationen ind i det samme arbejdsområde, som du bruger til din Android-app, har du muligvis et brugerdefineret debug-nøglelager indstillet til arbejdsområdet. Du skal rydde det brugerdefinerede debug-nøglelager for at bruge din egen API-nøgle.
- Fra hovedmenuen skal du klikke Vindue og vælg Præferencer.
- I den Præferencer dialog, vælg Android og Byg.
- Ryd Skik debug nøglelager
- Klik OK.
Håndter konfigurationsændringer for din aktivitet
Hvis en bruger ændrer skærmretningen eller ændrer enhedens tastaturtilstand, mens de logger på, vil den bede om en genstart af den aktuelle aktivitet. Denne genstart afviser uventet loginskærmen. For at forhindre dette skal du indstille den aktivitet, der bruger godkendelsesmetoden til at håndtere disse konfigurationsændringer manuelt. Dette forhindrer en genstart af aktiviteten.
- In Pakke Explorer, dobbeltklik xml.
- I den Anvendelse sektion, skal du finde den aktivitet, der håndterer login med Amazon (f.eksample, Hovedaktivitet).
- Føj følgende attribut til den aktivitet, du fandt i trin 2:
android: configChanges = ”tastatur | tastatur skjult | orientering” Eller til API 13 eller nyere:
android: configChanges = ”tastatur | tastatur skjult | orientering | skærmstørrelse” - Fra File menu, klik Spare
Nu, når en ændring af tastatur- eller enhedsretningen sker, vil Android kalde til onConfigurationChanged metode til din aktivitet. Du behøver ikke at implementere denne funktion, medmindre der er et aspekt af disse konfigurationsændringer, som du vil håndtere for din app
Når brugeren klikker på knappen Login med Amazon, starter API'en en web browser for at præsentere en login- og samtykkeside for brugeren. For at denne browseraktivitet skal fungere, skal du tilføje AuthorizationActivity til dit manifest.
- In Pakke Explorer, dobbeltklik xml.
- I den Anvendelse sektion, tilføje følgende kode og erstatte "com.example.app" med dit pakkenavn til denne app:
<aktivitet android:navn=
“com.amazon.identity.auth.device.authorization.AuthorizationActivity” android:theme=”@android:style/Theme.NoDisplay” android:allowTaskReparenting=”true” android:launchMode=”singleTask”>
<action android:name="android.intent.action.VIEW” />
<data
android:host="com.example.app” android:scheme=”amzn” />
din app. Dette afsnit giver trin til at downloade et officielt login med Amazon-billede og parre det med en Android ImageButton.
- Føj en standard ImageButton til din app.
For mere information om Android-knapper og ImageButton-klassen, se Knapper på developer.android.com. - Giv din knap et id.
Indstil android:id-attributten til @+id/login_with_amazon i knappen XML-erklæring. F.eksampdet:android: id = ”@ + id / login_with_amazon” - Vælg et knapbillede.
Se vores login med Amazon Retningslinjer for stil for en liste over knapper, som du kan bruge i din app. Download en kopi af LWA_Android.zip file. Uddrag en kopi af din foretrukne knap for hver skærmtæthed, din app understøtter (xxhdpi, xhdpi, hdpi, mdpi eller tvdpi). For mere information om understøttelse af flere skærmtætheder i Android, se Alternative layouter i "Understøtter flere skærme" emne ondeveloper.android.com. - Kopier det relevante knapbillede files til dit projekt.
For hver skærmtæthed, som du understøtter (xhdpi, hdpi, mdpi eller ldpi), skal du kopiere den downloadede knap til res / tegnes mappe til den skærmtæthed. - Erklær knapbilledet.
I knappen XML-erklæringen skal du indstille android:src-attributten til navnet på den knap, du har valgt. F.eksampdet:android: src = ”@ drawable / btnlwa_gold_loginwithamazon.png” 6. Indlæs din app, og bekræft, at knappen nu har et login med Amazon-billede. Du bør kontrollere, at knappen vises korrekt for hver skærmtæthed, du understøtter.
Dette afsnit forklarer, hvordan du kalder autoriseringen og getProfile API'er til at logge på en bruger og hente deres profile data. Dette inkluderer oprettelse af en onClick-lytter til din Login med Amazon-knap i onCreate-metoden i din app.
- Tilføj Login med Amazon til dit Android-projekt. Se Installer login med Amazon Library .
- Importer login med Amazon API til din kilde
For at importere login med Amazon API skal du tilføje følgende importudsagn til din kilde file:import com.amazon.identity.auth.device.AuthError; importere
com.amazon.identity.auth.device.authorization.api.
AmazonAuthorizationManager; importere
com.amazon.identity.auth.device.authorization.api. AuthorizationListener; import com.amazon.identity.auth.device.authorization.api.AuthzConstants; - Initialiser AmazonAuthorizationManager.
Du skal erklære en AmazonAuthorizationManager variabel og opret en ny forekomst af klassen. Oprettelse af en ny instans kræver kun din nuværende applikationskontekst og et tomt bundt. Det bedste sted at initialisere AmazonAuthorizationManager er i påOpret metode til din aktivitet. F.eksampdet: - Opret en AuthorizeLiistener.
AuthorizeListener implementerer AuthorizatioinListener-grænsefladen og vil behandle resultatet af autorizecall. Den indeholder tre metoder: oinSuccess, ved fejl, og påCanceil. Hver metode modtager enten en bundle eller en AuthFejl objekt.private klasse AuthorizeListener implementerer AuthorizationListener{
/ * Autorisationen blev gennemført. * /
@Tilsidesæt
public void onSuccess(Bundlesvar) {
}
/* Der opstod en fejl under forsøget på at godkende applikationen.
*/
@Tilsidesæt
offentlig ugyldighed onError (AuthError ae) {
}
/* Godkendelsen blev annulleret, før den kunne gennemføres. */
@Tilsidesæt
public void onCancel(Bundle årsag) {
}
} - Ring AmazonAuthorizationManager.authorize.
I den påKlik behandler for din Login med Amazon-knap, ring til autorisation for at bede brugeren om at logge på og godkende din applikation.
Denne metode er ansvarlig for at autorisere kunden på en af følgende måder:- Skifter til systembrowseren og lader kunden logge på og give samtykke til det ønskede
- Skifter til web view i en sikker sammenhæng at lade kunden logge ind og give samtykke til det ønskede
Denne sikre kontekst for #2 er i øjeblikket gjort tilgængelig som Amazon Shopping-appen på Android-enheder. Amazon-skabte enheder, der kører Fire OS (f.eksample Kindle Fire, Fire Phone og Fire TV) brug altid denne mulighed, selvom der ikke er nogen Amazon Shopping-app på enheden. På grund af dette, hvis kunden allerede er logget ind på Amazon Shopping-appen, vil denne API springe login-siden over, hvilket fører til en Single Sign On oplevelse for kunden.
Når din ansøgning er godkendt, er den godkendt til et eller flere datasæt kendt som omfang. Den første parameter er en række scopes, der omfatter de brugerdata, som du anmoder om fra Login med Amazon. Første gang en bruger logger ind på din app, vil de blive præsenteret for en liste over de data, du anmoder om, og bedt om godkendelse. Login med Amazon understøtter i øjeblikket tre scopes: profile, som indeholder brugerens navn, e-mailadresse og Amazon-konto-id; profile:bruger ID, som kun indeholder Amazon-konto-id'et; og postnummer, som indeholder brugerens postnummer.
Den bedste måde at kalde autorisation på er asynkront, så du behøver ikke at blokere UI-tråden eller oprette en egen arbejdstråd. At ringe autorisere asynkront, passere en genstand, der understøtter AuthorizationListener-grænseflade som sidste parameter:privat AmazonAuthorizationManager mAuthManager; @Tilsidesæt
protected void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
mAuthManager = ny AmazonAuthorizationManager(this, Bundle.EMPTY);// Find knappen med login_with_amazon ID
// og opsæt en klikhåndterer
mLoginButton = (Knap) findViewById(R.id.login_with_amazon);
mLoginButton.setOnClickListener(new OnClickListener() {
@Tilsidesæt
offentligt ugyldigt onClick (View v) {
mAuthManager.authorize(
ny streng []{“profile","postnummer"},
Bundle.EMPTY, ny AuthorizeListener());
}
});
} - Opret en ProfileLytter.
ProfileLytter er vores navn for en klasse, der implementerer APIListener interface, og vil behandle resultatet af getProfile opkald. APIListener indeholder to metoder: på succes og onError (det understøtter ikke på Annuller fordi der ikke er nogen måde at annullere en getProfile opkald). på succes modtager et bundleobjekt med profile data, mens onEriror modtager en AuthFejl objekt med oplysninger om fejlen.privat klasse ProfileListener implementerer APIListener{ /* getProfile gennemført med succes. */ @Tilsidesæt
public void onSuccess(Bundlesvar) {}
/* Der opstod en fejl under forsøget på at hente pro'enfile. */ @Tilsidesæt
offentlig ugyldighed onError (AuthError ae) {
}
} - Implementere på succes for din AuthorizeListener.
In på succes, opkald AmazonAuthorizationManager.getProfile at hente kundeprofffile. getProfile, som autorisere, bruger en asynkron lyttergrænseflade. Til getProfile, det interface er APIListener, notAuthorizationListener.
/* Godkendelsen blev gennemført. */ @Tilsidesæt
public void onSuccess(Bundlesvar) {
mAuthManager.getProfile(ny ProfileLytter());} - Implementere på succes for dine ProfileLytter.
på succes to hovedopgaver: at hente pro'enfile data fra svarpakke, og for at videregive dataene til brugergrænsefladen. updateProfileDatais en hypotetisk funktion, som din app kunne implementere for at vise profile detaljer. setLoggedInState, en anden hypotetisk funktion, ville indikere, at en bruger er logget ind og give dem et middel til logge ud.
For at hente profile data fra pakken, bruger vi navne gemt af AuthzConstants klasse. Det på succes bundtet indeholder profile data i en BUNDLE_KEY.PROFILE bundt.
Inden for proffsenfile bundle, er omfangsdataene indekseret under PROFILE_KEY.NAME, PROFILE_KEY.EMAIL, PROFILE_KEY.USER_ID, og PROFILE_KEY.POSTAL_CODE. PROFILE_KEY.POSTAL_CODE er kun inkluderet, hvis du anmoder om postnummer omfang.@Tilsidesæt
public void onSuccess(Bundlesvar) {
// Hent de data, vi har brug for, fra Bundle Bundle profileBundle = respons.getBundle(
AuthzConstants.BUNDLE_KEY.PROFILE.val);
Strengnavn = profileBundle.getString(
AuthzConstants.PROFILE_KEY.NAME.val);
String email = profileBundle.getString(
AuthzConstants.PROFILE_KEY.EMAIL.val);
Strengkonto = profileBundle.getString(
AuthzConstants.PROFILE_KEY.USER_ID.val);
Streng postnummer = profileBundle.getString(
AuthzConstants.PROFILE_KEY.POSTAL_CODE.val);
runOnUiThread(new Runnable() { @Override
public void run() {
updateProfileData (navn, e-mail, konto, postnummer);
}
});
} - Implementere onFejl for din ProfileLytter.
onFejl omfatter en AuthFejl objekt, der indeholder detaljer om fejlen./* Der opstod en fejl under forsøget på at hente pro'enfile. */ @Tilsidesæt
offentlig ugyldighed onError (AuthError ae) {
/* Prøv igen eller informer brugeren om fejlen */
} - Implementere påFejl for dine AuthorizeListener.
/* Der opstod en fejl under forsøget på at godkende applikationen.
*/
@Tilsidesæt
offentlig ugyldighed onError (AuthError ae) {
/ * Informer brugeren om fejlen * /
} - Implementere på Annuller for dine AuthorizeListener.
Fordi godkendelsesprocessen præsenterer en loginskærm (og muligvis en samtykkeskærm) for brugeren i en web browser (eller en webview), brugeren vil have mulighed for at annullere login eller navigere væk fra web side. Hvis de udtrykkeligt annullerer login-processen, på Annuller Hedder. Hvis påCancelis kaldet, vil du gerne nulstille din brugergrænseflade./* Godkendelsen blev annulleret, før den kunne gennemføres. */
@Tilsidesæt
public void onCancel(Bundle årsag) {
/* nulstil brugergrænsefladen til en klar-til-login-tilstand */
}Note: Hvis brugeren navigerer væk fra login -skærmen i browseren eller web view og skifter tilbage til din app, vil SDK'et ikke registrere, at login ikke blev fuldført. Hvis du registrerer brugeraktivitet i din app, før login er fuldført, kan du antage, at de har navigeret væk fra browseren og reagerer derefter.
Se efter brugerlogin ved opstart
Hvis en bruger logger ind på din app, lukker appen og genstarter appen senere, er appen stadig autoriseret til at hente data. Brugeren logges ikke automatisk ud. Ved opstart kan du vise brugeren som logget på, hvis din app stadig er autoriseret. Dette afsnit forklarer, hvordan du bruger getToken til at se, om appen stadig er autoriseret.
- Opret en TokenListener.
TokenListener implementerer APIListener interface, og vil behandle resultatet af getToken-kaldet. APIListener indeholder to metoder: på succes og onFejl (det understøtter ikke på Annuller fordi der ikke er nogen måde at annullere en getToken opkald). på succes modtager et bundleobjekt med tokendata, mens onFejl modtager en AuthFejl objekt med oplysninger om fejlen.private class TokenListener implementerer APIListener{ /* getToken gennemført med succes. */ @Tilsidesæt
public void onSuccess(Bundlesvar) {
}
/* Der opstod en fejl under forsøget på at hente tokenet. */ @Tilsidesæt
offentlig ugyldighed onError (AuthError ae) {
}
} - I den på Start metode til din aktivitet, ring getToken for at se om applikationen stadig er godkendt.
getToken henter det rå adgangstoken, som AmazonAuthorizationManager bruger til at få adgang til en kundeprofffile. Hvis tokenværdien ikke er null, er appen stadig autoriseret og et opkald til getProfile skal lykkes. getToken kræver de samme omfang, som du anmodede om i dit opkald til godkendelse.
getTokenstøtter asynkrone opkald på samme måde som getProfile, så du behøver ikke at blokere UI-tråden eller oprette en egen arbejdstråd. For at kalde getToken asynkront skal du sende et objekt, der understøtter APIListener interface som den sidste parameter.@Tilsidesæt
beskyttet void onStart(){
super.onStart
();mAuthManager.getToken(ny streng []{“profile","postnummer"},
ny
TokenListener());
} - Implementere på succes for din TokenListener.
på succes to opgaver: at hente tokenet fra bundtet, og hvis tokenet er gyldigt, at ringe getProfile.
For at hente token-dataene fra bundtet bruger vi navne gemt af AuthzConstants klasse. Det på succes bundle indeholder token-dataene i en BUNDLE_KEY.TOKEN-værdi. Hvis denne værdi ikke er nul, vil denne f.eksampde ringer getProfile ved at bruge den samme lytter, som du erklærede i det foregående afsnit (se trin 7 og 8)./* getToken gennemført med succes. */
@Tilsidesæt
public void onSuccess(Bundlesvar) {
final String authzToken =
response.getString(AuthzConstants.BUNDLE_KEY.TOKEN.val);
if (!TextUtils.isEmpty(authzToken))
{
// Hent pro'enfile data
mAuthManager.getProfile(ny ProfileLytter());
}
}
ClearAuthorizationState-metoden vil rydde brugerens autorisationsdata fra AmazonAuthorizationManager lokale datalager. En bruger skal logge ind igen for at app'en kan hente profile data. Brug denne metode til at logge ud af en bruger eller til at foretage fejlfinding af loginproblemer i appen.
- Implementer et logout
Når en bruger har logget ind med succes, skal du angive en logout -mekanisme, så de kan rydde deres profffile data og tidligere godkendte omfang. Din mekanisme kan være et hyperlink eller et menupunkt. For denne exampvi vil skabe en påKlik metode til en knap. - Ring i din logout-handler clearAuthorizationState. clearAuthorizationState vil fjerne en brugers autorisationsdata (adgangstokens, profile) fra den lokale butik. clearAuthorizationStatetakes ingen parametre bortset fra en APIListener at returnere succes eller
- Erklær en anonym APIListener.
Anonyme klasser er et nyttigt alternativ til at erklære en ny klasse, der skal implementeres APIListener. Se Håndter Login-knappen og Get Profile Data (s. 17) for en exampletat erklærer lytterklasser. - Implementere på succes inde i APIListener
Når clearAuthorizationState lykkes, bør du opdatere din brugergrænseflade for at fjerne referencer til brugeren og give en login-mekanisme, som brugere kan bruge til at logge på igen. - Implementere onFejl inde i APIListener.
If clearAuthorizationStat returnerer en fejl, kan du lade brugeren prøve at logge ud igen.@Tilsidesæt
protected void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
/ * Forrige på Opret erklæringer udeladt * /
// Find knappen med logout-id'et, og opret en klikhåndtering
mLogoutButton = (Knap) findViewById(R.id.logout);
mLogoutButton.setOnClickListener(new OnClickListener() {
@Tilsidesæt
offentligt ugyldigt onClick (View v) {
mAuthManager.clearAuthorizationState(ny
APIListener() {
@Tilsidesæt
public void onSuccess(Bundleresultater) {
// Indstil udlogget tilstand i brugergrænsefladen
}
@Tilsidesæt
offentlig ugyldighed onError (AuthError authError) {
// Log fejlen
}
});
}
});
}
Nogle AmazonAuthorizationManager metoder returnerer et Future-objekt. Dette giver dig mulighed for at kalde metoden synkront i stedet for at overføre en lytter som en parameter. Hvis du bruger et Future-objekt, bør du ikke bruge det på en UI-tråd. Hvis du blokerer en UI-tråd i mere end fem sekunder, får du en ANR-prompt (Application Not Responding). I håndtag login-knappen og Get Profile Data example, den på succes metode til AuthorizeListener kaldes med en arbejdstråd oprettet af AmazonAuthorizationManager. Det betyder, at det er sikkert at bruge den tråd til at kalde getPirofile synkront. For at foretage et synkront opkald skal du tildele returværdien fra få Pirofile til et Future-objekt, og kald gietmetode på det objekt for at vente, indtil metoden er færdig.
Future.get returnerer et bundleobjekt, der indeholder en FUTURE_TYPE værdi af SUCCES, FEJL, or OPHÆVE. Hvis metoden var en succes, vil den samme bundt indeholde PROFILE_KEY værdier for profile data. F.eksampdet:
/ * Autorisationen blev gennemført. * / @Tilsidesæt public void onSuccess(Bundlesvar) { Future<Bundle> future = mAuthManager.getProfile(nul); Bundle result = future.get();// Find ud af, om opkaldet lykkedes, og hent pro'enfile Objekt future_type = result.get(AuthzConstants.BUNDLE_KEY.FUTURE.val); if (future_type == AuthzConstants.FUTURE_TYPE.SUCCESS) { Strengnavn = result.getString( AuthzConstants.PROFILE_KEY.NAME.val); String email = result.getString( AuthzConstants.PROFILE_KEY.EMAIL.val); String account = result.getString( AuthzConstants.PROFILE_KEY.USER_ID.val); Streng postnummer = result.getString( AuthzConstants.PROFILE_KEY.POSTAL_CODE.val); runOnUiThread(new Runnable() { @Override public void run() { updateProfileData (navn, e-mail, konto, postnummer); } }); } else if (future_type == AuthzConstants.FUTURE_TYPE.ERROR) { // Hent fejlobjekt AuthError authError = AuthError.extractError(result); /* Brug authError til at diagnosticere fejl */ } |
Log ind med Amazon Kom godt i gang Guide til Android – Download [optimeret]
Log ind med Amazon Kom godt i gang Guide til Android – Download