Log in met Amazon Aan de slag-gids voor Android
Inloggen met Amazon: Aan de slag-gids voor Android
Copyright © 2016 Amazon.com, Inc., of haar dochterondernemingen. Alle rechten voorbehouden. Amazon en het Amazon-logo zijn handelsmerken van Amazon.com, Inc. of haar dochterondernemingen. Alle andere handelsmerken die geen eigendom zijn van Amazon zijn eigendom van hun respectievelijke eigenaren.
Aan de slag voor Android
In deze handleiding laten we u zien hoe u Login met Amazon aan uw Android-app toevoegt. Na het voltooien van deze handleiding zou u een werkende knop Inloggen met Amazon in uw app moeten hebben, zodat gebruikers kunnen inloggen met hun Amazon-inloggegevens.
De Android-ontwikkelaarstools installeren
Met de Login met Amazon SDK voor Android kunt u Login met Amazon toevoegen aan uw Android-applicatie. We raden u aan de Login with Amazon SDK voor Android van developer.amazon.com met Android Studio te gebruiken. U kunt echter ook de Eclipse met ADT-plug-in gebruiken. Zie voor stappen voor het installeren van Android Studio en het instellen van de Android SDK Download de Android SDK op developer.android.com.
Wanneer de Android SDK is geïnstalleerd, zoekt u het SDK-beheerder applicatie in uw Android-installatie. Om te ontwikkelen voor Login met Amazon, moet u SDK Manager gebruiken om het SDK-platform voor Android 2.2 of hoger (API-versie 8) te installeren. Zien SDK-pakketten toevoegen op developer.android.com voor meer informatie over het gebruik van SDK
Na het installeren van de SDK, stelt u een Android Virtual Device (AVD) in om uw apps uit te voeren. Zien Beheren Virtuele apparaten op developer.android.com voor instructies over het instellen van een virtueel apparaat.
Als je ontwikkelomgeving is opgezet, kan dat Installeer de login met Amazon SDK voor Android or Voer de S uitampde app, zoals hieronder beschreven.
Installeer de login met Amazon SDK voor Android
De Login met Amazon SDK voor Android wordt geleverd in twee pakketten. De eerste bevat de Android-bibliotheek en ondersteunende documentatie. De tweede bevat asample-applicatie waarmee een gebruiker kan inloggen en zijn pro kan weergevenfile gegevens.
Als u de Android SDK of de Android Development Tools nog niet heeft geïnstalleerd, raadpleegt u het Installeren de Android Developer Tools sectie hierboven.
- Download rits en haal de files naar een map op uw harde schijf.
Je zou een moeten zien document en een vrij submap. - Open doc/index.html naar view de Inloggen met Amazon Android API
- Zien Installeer de login met Amazon Library, voor instructies over het toevoegen van de bibliotheek en documentatie aan een Android
Wanneer de Login met Amazon SDK voor Android is geïnstalleerd, kunt u Maak een nieuwe login aan bij Amazon projecteren, na Registreren met Inloggen bij Amazon .
Voer de S uitampde app
Om de s . uit te voerenample applicatie, importeer de sampbestand in een AndroidStudio-werkruimte (als u Eclipse gebruikt, moet u ook een aangepaste foutopsporingssleutelarchief aan de werkruimte toevoegen. Zie de Voeg de aangepaste foutopsporing toe Sleutelopslag in Eclipse gedeelte hieronder). De API-sleutel die de sampHet bestand dat de toepassing gebruikt, vereist dat de werkruimte de sleutelopslag gebruikt die bij de sample. Als de aangepaste sleutelopslag niet is geïnstalleerd, kunnen gebruikers niet inloggen met behulp van de sample. De sleutelopslag wordt automatisch opgehaald als u AndroidStudio gebruikt.
- Download SampleLoginWithAmazonAppForAndroid-src.zip en haal de files naar een map op je harde
- Start Android Studio en selecteer Open een bestaand Android Studio-project
- Blader naar het SampleLoginMetAmazonApp map verkregen na het uitpakken van de gedownloade zip file in stap
- Vanuit de Bouwen menu, klik Project makenen wacht tot het project is voltooid
- Vanuit de Loop menu, klik Loop en klik vervolgens op de SampleLoginMetAmazonApp.
- Selecteer de emulator of het aangesloten Android-apparaat en klik op Loop.
Voeg de Custom Debug Key-opslag toe in Eclipse
Als u Eclipse gebruikt, volgt u de onderstaande instructies om de aangepaste foutopsporingssleutelopslag toe te voegen:
- In de Voorkeuren dialoog, selecteren Androïde En Bouwen.
- Naast Aangepast Foutopsporing in sleutelarchief, klik Bladeren.
- Navigeer naar de sample app-map en selecteer 3p.sleutelopslag, en klik vervolgens op OK.
Registreren met Inloggen bij Amazon
Voordat u Inloggen met Amazon op een website of in een mobiele app, moet u een applicatie registreren met Login with Amazon. Uw Login with Amazon-applicatie is de registratie die basisinformatie over uw bedrijf bevat, en informatie over elk website of mobiele app die u maakt die Login with Amazon ondersteunt. Deze bedrijfsinformatie wordt aan gebruikers getoond telkens wanneer ze Login with Amazon gebruiken op uw website of mobiele app. Gebruikers zien de naam van uw applicatie, uw logo en een link naar uw privacybeleid. Deze stappen laten zien hoe u een Login with Amazon-applicatie registreert en een Android-app aan dat account toevoegt.
Zie de volgende onderwerpen:
- Registreer uw login met Amazon-applicatie
- Registreer uw Android-app
- Voeg een Android-app toe voor Amazon Appstore
- Voeg een Android-app toe zonder Appstore
- Handtekeningen en API-sleutels voor Android-apps
- Een handtekening van een Android-app bepalen
- Een Android API-sleutel ophalen
Registreer uw login met Amazon-applicatie
- Ga naar https://login.amazon.com.
- Als je je eerder hebt aangemeld voor Inloggen bij Amazon, klik dan op App-consoleAnders klikt u op Aanmelden. U wordt doorgestuurd naar Seller Central, die de aanmeldingsregistratie voor Login met afhandelt. Als dit de eerste keer is dat u Seller Central gebruikt, wordt u gevraagd om een Seller Central-account aan te maken.
- Klik Registreer nieuwe aanvraag. De Registreer uw aanvraag formulier zal verschijnen:
a. In de Registreer uw aanvraag formulier, voer een in Naam en een Beschrijving voor uw aanvraag.
De Naam is de naam die wordt weergegeven op het toestemmingsscherm wanneer gebruikers akkoord gaan met het delen van informatie met uw applicatie. Deze naam is van toepassing op Android, iOS en websiteversies van uw toepassing.
b. Voer een Privacyverklaring URL voor uw toepassing
De Privacyverklaring URL is de locatie van het privacybeleid van uw bedrijf of applicatie (bijvampde, http://www.example.com/privacy.html). Deze link wordt aan gebruikers weergegeven op het toestemmingsscherm.
c. Als u een wilt toevoegen Logo-afbeelding voor uw aanvraag, klik Bladeren en zoek de juiste afbeelding.
Dit logo wordt weergegeven op het aanmeldings- en toestemmingsscherm om uw bedrijf te vertegenwoordigen of webplaats. Het logo wordt verkleind tot 50 pixels hoog als het groter is dan 50 pixels; er is geen beperking op de breedte van het logo - Klik Redden. Jouw sampDe registratie zou er ongeveer zo uit moeten zien:
Nadat uw basistoepassingsinstellingen zijn opgeslagen, kunt u instellingen toevoegen voor specifieke websites en mobiele apps die deze Login met Amazon-account zullen gebruiken.
Registreer uw Android-app
Om een Android-app te registreren, heeft u de keuze om een app te registreren via de Amazon Appstore (Voeg een Android-app toe voor Amazon Appstore, P. 8) of rechtstreeks met Inloggen met Amazon (Voeg een Android App Zonder Appstore, P. 9). Wanneer uw app is geregistreerd, heeft u toegang tot een API-sleutel waarmee uw app toegang krijgt tot de autorisatieservice Inloggen met Amazon.
Opmerking: Als u van plan bent Amazon Device Messaging te gebruiken in uw Android-app, neem dan contact op met ik- ondersteuning@amazon.com met:
- Het e-mailadres van het Amazon-account dat je hebt gebruikt om je aan te melden voor Inloggen bij Amazon.
- Het e-mailadres van het Amazon-account waarmee je je hebt aangemeld voor de Amazon Appstore (indien anders).
- De naam op uw Seller Central-account. (Klik op Seller Central Instellingen> Accountinfo> Verkopersinformatie, en gebruik de Weergavenaam).
- De naam op uw Amazon Appstore-ontwikkelaarsaccount. (Klik op de site voor distributie van mobiele apps Instellingen > Bedrijf Profile en gebruik de Naam ontwikkelaar of bedrijfsnaam).
Voeg een Android-app toe voor Amazon Appstore
De volgende stappen zullen een Amazon Appstore-app toevoegen aan uw Login met Amazon-account:
- Klik op het scherm Toepassing op Android-instellingen. Als je al een Android-app hebt geregistreerd, zoek dan naar het API-sleutel toevoegen knop in de Android-instellingen
De Android-toepassingsdetails formulier zal verschijnen: - Selecteer Ja in antwoord op de vraag "Wordt deze applicatie gedistribueerd via de Amazon Appstore?"
- Ga naar de Label van uw Android-app. Dit hoeft niet de officiële naam van je app te zijn. Het identificeert eenvoudig deze specifieke Android-app tussen de apps en websites die zijn geregistreerd bij uw Login met Amazon-toepassing.
- Voeg uw toe Amazon Appstore-ID.
- Als u uw app zelf heeft ondertekend, voegt u gegevens voor zelfondertekening toe. Hierdoor kunt u tijdens de ontwikkeling een API-sleutel verkrijgen zonder rechtstreeks gebruik te maken van de Appstore:
a. Als uw app niet via de Amazon Appstore is ondertekend, selecteert u Ja als antwoord op de vraag “Is deze applicatie zelfondertekend?”
De Android-toepassingsdetails formulier zal uitbreiden:
b. Voer uw Verpakkingsnaam.
Dit moet overeenkomen met de pakketnaam van uw Android-project. Om de pakketnaam van uw Android-project te bepalen, opent u het project in de Android-ontwikkelaarstool van uw keuze.
Open AndroidManifest.XML in Pakketverkenner en selecteer het Manifest tabblad. De eerste invoer is de pakketnaam.
c. Voer de app in Handtekening.
Dit is een SHA-256-hashwaarde die wordt gebruikt om uw toepassing te verifiëren. De handtekening moet de vorm hebben van 32 hexadecimale paren gescheiden door dubbele punten (bijvampon: 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). Zien Handtekeningen en API-sleutels voor Android-apps voor stappen die u kunt gebruiken om de handtekening uit uw project te halen. - Klik Redden.
Als verschillende versies van uw app verschillende handtekeningen of pakketnamen hebben, zoals voor een of meer testversies en een productieversie, heeft elke versie een eigen API-sleutel nodig. Van de Android-instellingen van uw app, klikt u op het API-sleutel toevoegen knop om extra sleutels voor uw app te maken (één per versie).
Handtekeningen en API-sleutels voor Android-apps
De app-handtekening is een SHA-256-hashwaarde die wordt toegepast op elke Android-app wanneer deze wordt gebouwd. Amazon gebruikt de app-handtekening om uw API-sleutel samen te stellen. Met de API-sleutel kunnen Amazon-services uw app herkennen. Als u de Amazon Appstore gebruikt om uw app te ondertekenen, wordt de API-sleutel automatisch verstrekt. Als u de Amazon Appstore niet gebruikt, moet u uw API-sleutel handmatig beheren.
App-handtekeningen worden opgeslagen in een sleutelarchief. Over het algemeen is er voor Android-apps een debug-sleutelarchief en een release-sleutelarchief. De debug-keystore wordt gemaakt door de Android Development Tools-plug-in voor Eclipse en wordt standaard gebruikt. U kunt de locatie van de foutopsporingssleutelopslag in Eclipse vinden door op te klikken Raamen vervolgens selecteren Voorkeuren > Android > Bouwen. Vanuit dat scherm kunt u ook uw eigen debug-sleutelarchief toevoegen. Voor Android Studio, van de Bouwen menu, selecteren Bouwtypes bewerken, ga dan naar de Ondertekening tab en zoek de debug keystore in het Winkel File veld.
Er wordt normaal gesproken een release-keystore gemaakt wanneer u uw Android-app exporteert om een ondertekende APK te maken file.
Als u tijdens het exportproces een nieuwe release-sleutelarchief maakt, selecteert u de locatie ervan. Door
standaard wordt het op dezelfde locatie geplaatst als uw standaard debug KeyStore.
Als u uw app tijdens de ontwikkeling hebt geregistreerd met behulp van de foutopsporingshandtekening, moet u een nieuwe Android-instelling aan uw applicatie toevoegen wanneer u klaar bent om de app vrij te geven. De nieuwe app-instelling moet de handtekening van de release keystore gebruiken.
Zien Ondertekenen van uw applicaties op developer.android.com voor meer informatie.
Bepaal de handtekening van de Android-app
- Als je een ondertekende APK hebt file:
a. Pak de APK uit file en uittreksel CERT.RSA. (U kunt indien nodig de APK-extensie hernoemen naar ZIP).
b. Voer vanaf de opdrachtregel het volgende uit:keytool -printcert-file CERT.RSA Sleuteltoolis gelegen in de prullenbak directory van uw Java-installatie.
- Als je een sleutelwinkel hebt file:
a. Voer vanaf de opdrachtregel het volgende uit:keytool -lijst -v -alias -keystorefilenaam> Sleutelgereedschap bevindt zich in de bin-map van uw Java-installatie. De alias is de naam van de sleutel die wordt gebruikt om de app te ondertekenen.
b. Voer het wachtwoord voor de sleutel in en druk op Binnenkomen. - Onder Certificaatvingerafdrukken, kopieer de SHA256 waarde.
Haal de Android API-sleutel op
Wanneer je een Android-instelling hebt geregistreerd en een app-handtekening hebt opgegeven, kun je de API-sleutel ophalen van de registratiepagina voor je Login met Amazon-applicatie. U moet die API-sleutel in a . plaatsen file in uw Android-project. Totdat u dit doet, is de app niet geautoriseerd om te communiceren met de Login met Amazon-autorisatieservice.
- Ga naar https://login.amazon.com.
- Klik App-console.
- In de Toepassingen vak aan de linkerkant, selecteer je
- Zoek uw Android-app onder de Android-instellingen (Als u nog geen Android-app hebt geregistreerd, zie Voeg een Android-app toe voor Amazon Appstore).
- Klik Genereer API-sleutelwaarde. Een pop-upvenster toont uw API-sleutel. Om de sleutel te kopiëren, klikt u op Selecteer alles om het geheel te selecteren
Opmerking: De API-sleutelwaarde is gedeeltelijk gebaseerd op het tijdstip waarop deze wordt gegenereerd. De daaropvolgende API-sleutelwaarde(n) die u genereert, kunnen dus afwijken van het origineel. U kunt elk van deze API-sleutelwaarden in uw app gebruiken, aangezien ze allemaal geldig zijn. - Zien Voeg uw API-sleutel toe aan uw project voor instructies over het toevoegen van de API-sleutel aan uw Android
Een login aanmaken met Amazon Project
In dit gedeelte leert u hoe u een nieuw Android-project maakt voor Inloggen met Amazon, het project configureert en code aan het project toevoegt om een gebruiker aan te melden met Inloggen met Amazon. We zullen de stappen voor Android Studio beschrijven, maar u kunt analoge stappen toepassen op elke IDE- of Android-ontwikkeltool van uw keuze.
Zie de volgende onderwerpen:
- Maak een nieuwe login aan met Amazon Project
- Installeer de login met Amazon Library
- Schakel Content Assist in voor inloggen met Amazon Library
- Stel netwerkmachtigingen in voor uw app
- Voeg uw API-sleutel toe aan uw project
- Verwijder de Sample App Aangepaste foutopsporingssleutelopslag
- Omgaan met configuratiewijzigingen voor uw activiteit
- Voeg een autorisatieactiviteit toe aan uw project
- Voeg een login met Amazon-knop toe aan uw app
- Gebruik de inlogknop en Get Profile Gegevens
- Controleer op gebruikersaanmelding bij opstarten
- Wis de autorisatiestatus en meld een gebruiker af
- Roep Amazon Authorization Manager-methoden synchroon aan
Maak een nieuwe login aan met Amazon Project
Als je nog geen app-project hebt om Login with Amazon te gebruiken, volg dan de onderstaande instructies om er een te maken. Als u een bestaande app heeft, gaat u verder met Installeer de login met Amazon Library .
- Launch Android-ontwikkeltool.
- Vanuit de File menu, selecteren Nieuw En Project.
- Voer een in Toepassingsnaam En Bedrijfsnaam voor jouw
- Ga naar de Sollicitatie- en bedrijfsnaam overeenkomend met de pakketnaam die u koos toen u uw app registreerde met Login bij Amazon.
Als u uw app nog niet heeft geregistreerd, kiest u een Pakketnaam en volg de instructies in het Registreren met Inloggen bij Amazon sectie nadat u uw project hebt gemaakt. Als de pakketnaam van uw app niet overeenkomt met de geregistreerde pakketnaam, zullen uw Login met Amazon-oproepen niet slagen. - Selecteer een Minimaal vereiste SDK van API 8: Android 2 (Froyo) of hoger, en klik Volgende.
- Selecteer het type activiteit dat u wilt maken en klik op Volgende.
- Vul de relevante gegevens in en klik op Finish.
Je hebt nu een nieuw project in je werkruimte dat je kunt gebruiken om Login with Amazon te bellen.
Installeer de login met Amazon Library
Als je de Login met Amazon SDK voor Android nog niet hebt gedownload, zie Installeer de login met Amazon SDK voor Android (blz. 4).
- Terwijl uw project geopend is in Android Developer Tools, in Projectverkenner, klik met de rechtermuisknop op uw Project.
- Als een map wordt aangeroepen libs nog niet aanwezig is, creëer
- Kopieer de login-met-amazon-sdk.jar file van de File Systeemen plak het vervolgens in het libs directory onder uw project/app.
- Klik met de rechtermuisknop login-met-amazon-sdk.jar, en controleer de Toevoegen als bibliotheek
Schakel Content Assist in voor inloggen met Amazon Library in Eclipse
Om de ondersteuning voor Eclipse-inhoud in een Android-project in te schakelen, is het gebruik van een .eigenschappen file. Zie voor meer informatie over inhoudsondersteuning Inhoud/code-assistentie ophelp.eclipse.org.
Om de ondersteuning voor Eclipse-inhoud in een Android-project in te schakelen, is het gebruik van een .eigenschappen file. Zie voor meer informatie over inhoudsondersteuning Inhoud/code-assistentie ophelp.eclipse.org.
- In Windows Verkenner, navigeer naar de documenten map voor Inloggen met Amazon SDK voor Android en kopieer de map naar de
- Ga met uw project geopend naar Pakketverkenner en selecteer de libs Klik Bewerking in het hoofdmenu en selecteer Plakken. Je zou nu een libs\docs gids.
- Selecteer de libs Klik File in het hoofdmenu en selecteer Nieuw EnFile.
- In de Nieuw File dialoog, invoeren login-met-amazon-sdk.jar.properties en klik Finish.
- Eclipse zou moeten openen login-met-amazon-sdk.jar.properties in de teksteditor. Voeg in de teksteditor de volgende regel toe aan het file:
doc=docs - Vanuit de File menu, klik Redden.
- Mogelijk moet u Eclipse opnieuw opstarten om de wijzigingen door te voeren
Stel netwerkmachtigingen in voor uw app
Om ervoor te zorgen dat uw app Login met Amazon kan gebruiken, moet deze toegang hebben tot internet en toegang hebben tot netwerkstatusinformatie. Uw app moet deze machtigingen bevestigen in uw Android-manifest, als dit nog niet het geval is.
OPMERKING: De onderstaande procedurestappen zijn specifiek voor het toevoegen van de machtigingen in Eclipse. Als u Android Studio of een andere IDE gebruikt, kunt u alle onderstaande genummerde stappen overslaan. Kopieer in plaats daarvan de coderegels die onder de schermafbeelding worden weergegeven en plak ze in het AndroidManifest.xml file, buiten het applicatieblok.
- In Pakket Ontdekkingsreiziger, dubbelklik xml.
- Op de Machtigingen tabblad, klik Toevoegen.
- Selecteer Gebruikt toestemming en klik OK.
- Rechts van Machtigingen, vind de Kenmerken voor gebruiksrechten
- In de Naam vakje, enter toestemming. INTERNET of selecteer het in de vervolgkeuzelijst.
- Op de Machtigingen tabblad, klik Toevoegen
- Selecteer Gebruikt toestemming en klik OK.
- In de Naam vakje, enter toestemming.ACCESS_NETWORK_STATE of selecteer het in de vervolgkeuzelijst
- Vanuit de File menu, klik Redden.
Uw manifestmachtigingen moeten nu de volgende waarden hebben:
In de AndroidManifest.xml tabblad, zou je nu deze vermeldingen onder het manifest-element moeten zien:
Voeg uw API-sleutel toe aan uw project
Wanneer u uw Android-applicatie registreert met Login bij Amazon, krijgt u een API-sleutel toegewezen. Dit is een identificatie die de Amazon Authorization Manager zal gebruiken om uw toepassing bij de Login with Amazon-autorisatieservice te identificeren. Als u de Amazon Appstore gebruikt om uw app te ondertekenen, zal de Appstore de API-sleutel automatisch verstrekken. Als u de Amazon Appstore niet gebruikt, laadt de Amazon Authorization Manager deze waarde tijdens runtime vanuit de api_key.txt file in de activa gids.
- Als u uw API-sleutel nog niet heeft, volgt u de instructies in Haal de Android API-sleutel op (blz. 11).
- Met uw ADT-project geopend, vanuit de File menu, klik Nieuw en selecteer Naamloze tekst File. U zou nu een editorvenster voor een tekst moeten hebben file genoemd Zonder titel 1. Voeg uw API-sleutel toe aan de tekst
- Vanuit de File menu, klik Opslaan als.
- In de Opslaan als dialoogvenster, selecteer het activa map van uw project als de bovenliggende map. Voor File naam, binnenkomen tekst.
Verwijder de Sample App Aangepaste foutopsporingssleutelopslag
OPMERKING: deze stap is alleen vereist als u Eclipse gebruikt; Als u Android Studio gebruikt, kunt u dit gedeelte overslaan.
Als u Inloggen met Amazon voor Android sample-applicatie naar dezelfde werkruimte die u voor uw Android-app gebruikt, heeft u mogelijk een aangepaste foutopsporingssleutelarchief ingesteld voor de werkruimte. U moet de aangepaste foutopsporingssleutelopslag wissen om uw eigen API-sleutel te kunnen gebruiken.
- Klik in het hoofdmenu op Raam en selecteer Voorkeuren.
- In de Voorkeuren dialoog, selecteren Androïde En Bouwen.
- Maak de Aangepast sleutelarchief debuggen
- Klik OK.
Omgaan met configuratiewijzigingen voor uw activiteit
Als een gebruiker de schermoriëntatie wijzigt of de toetsenbordstatus van het apparaat verandert terwijl hij inlogt, wordt gevraagd om de huidige activiteit opnieuw te starten. Door deze herstart wordt het inlogscherm onverwachts gesloten. Om dit te voorkomen, moet u de activiteit instellen die de autorisatiemethode gebruikt om deze configuratiewijzigingen handmatig af te handelen. Dit voorkomt dat de activiteit opnieuw wordt gestart.
- In Pakket Ontdekkingsreiziger, dubbelklik xml.
- In de Sollicitatie sectie, zoek de activiteit die Inloggen met Amazon afhandelt (bijvoorbeeldampde, Hoofdactiviteit).
- Voeg het volgende kenmerk toe aan de activiteit die u in stap 2 heeft gevonden:
android: configChanges = "keyboard | keyboardHidden | oriëntatie" Of voor API 13 of hoger:
android: configChanges = "keyboard | keyboardHidden | oriëntatie | screenSize" - Vanuit de File menu, klik Redden
Wanneer er nu een wijziging in de toetsenbord- of apparaatoriëntatie plaatsvindt, zal Android de onConfiguratieGewijzigd methode voor uw activiteit. U hoeft deze functie niet te implementeren, tenzij er een aspect van deze configuratiewijzigingen is dat u voor uw app wilt afhandelen
Wanneer de gebruiker op de knop Inloggen met Amazon klikt, start de API een web browser om een inlog- en toestemmingspagina aan de gebruiker te presenteren. Om deze browseractiviteit te laten werken, moet u de AuthorizationActivity aan uw manifest toevoegen.
- In Pakket Ontdekkingsreiziger, dubbelklik xml.
- In de Sollicitatie sectie, voeg de volgende code toe, ter vervanging van “com.example.app” met uw pakketnaam voor deze app:
<activiteit android:naam=
“com.amazon.identity.auth.device.authorization.AuthorizationActivity” android:theme=”@android:style/Theme.NoDisplay” android:allowTaskReparenting=”true” android:launchMode=”singleTask”>
<actie android:name=”android.intent.action.VIEW" />
<gegevens
android:host=”com.example.app” android:scheme=”amzn” />
jouw app. In dit gedeelte vindt u stappen voor het downloaden van een officiële Login met Amazon-afbeelding en deze te koppelen aan een Android ImageButton.
- Voeg een standaard ImageButton toe aan uw app.
Zie voor meer informatie over Android-knoppen en de klasse ImageButton Knoppen op developer.android.com. - Geef uw knop een ID.
Stel in de knop XML-declaratie het android:id-attribuut in op @+id/login_with_amazon. Bijvoorbeeldampon:android: id = "@ + id / login_with_amazon" - Kies een knopafbeelding.
Raadpleeg onze login bij Amazon Stijlrichtlijnen voor een lijst met knoppen die u in uw app kunt gebruiken. Download een kopie van het LWA_Android.zip file. Extraheer een kopie van uw voorkeursknop voor elke schermdichtheid die uw app ondersteunt (xxhdpi, xhdpi, hdpi, mdpi of tvdpi). Voor meer informatie over het ondersteunen van meerdere schermdichtheden in Android, zie Alternatieve lay-outs in het onderwerp "Meerdere schermen ondersteunen" ondeveloper.android.com. - Kopieer de juiste knopafbeelding files aan uw project.
Kopieer voor elke schermdichtheid die u ondersteunt (xhdpi, hdpi, mdpi of ldpi) de gedownloade knop naar de res / drawable directory voor die schermdichtheid. - Verklaar de afbeelding van de knop.
Stel in de XML-declaratie voor de knop het android:src-attribuut in op de naam van de knop die u hebt gekozen. Bijvoorbeeldampon:android: src = "@ drawable / btnlwa_gold_loginwithamazon.png" 6. Laad uw app en controleer of de knop nu een Login met Amazon-afbeelding heeft. U moet controleren of de knop correct wordt weergegeven voor elke schermdichtheid die u ondersteunt.
In deze sectie wordt uitgelegd hoe u de autorisatie en getPro kunt aanroepenfile API's om een gebruiker in te loggen en zijn/haar professional op te halenfile gegevens. Dit omvat het maken van een onClick-listener voor uw knop Inloggen met Amazon in de onCreate-methode van uw app.
- Voeg Login met Amazon toe aan uw Android-project. Zien Installeer de login met Amazon Library .
- Importeer de login met Amazon API naar uw bron
Om de Login met Amazon API te importeren, voegt u de volgende importinstructies toe aan uw bron file:importeer com.amazon.identity.auth.device.AuthError; importeren
com.amazon.identity.auth.device.authorization.api.
AmazonAuthorizationManager; importeren
com.amazon.identity.auth.device.authorization.api. AuthorizationListener; importeer com.amazon.identity.auth.device.authorization.api.AuthzConstants; - Initialiseren AmazonAuthorizationManager.
U moet een aangifte doen AmazonAuthorizationManager variabele en maak een nieuw exemplaar van de klasse. Voor het maken van een nieuw exemplaar zijn alleen uw huidige applicatiecontext en een lege bundel vereist. De beste plaats om te initialiseren AmazonAuthorizationManager is in de opCreate methode van uw activiteit. Bijvoorbeeldampon: - Maak een AuthorizeListener.
Luisteraar autoriseren implementeert de AuthorizatioinListener-interface en verwerkt het resultaat van de autorizecall. Het bevat drie methoden: oinSuccess, opFout, en op Annuleren. Elke methode ontvangt een bundel of een AuthError voorwerp.privéklasse AuthorizeListener implementeert AuthorizationListener{
/ * Autorisatie is met succes voltooid. * /
@ Override
public void onSuccess(bundelantwoord) {
}
/* Er is een fout opgetreden tijdens de poging om de toepassing te autoriseren.
*/
@ Override
public void onError (AuthError ae) {
}
/* De autorisatie is geannuleerd voordat deze kon worden voltooid. */
@ Override
public void onCancel(Bundeloorzaak) {
}
} - Telefoongesprek AmazonAuthorizationManager.autoriseren.
In de opKlik handler voor uw knop Inloggen met Amazon, bel autoriseren om de gebruiker te vragen in te loggen en uw aanvraag te autoriseren.
Deze methode is verantwoordelijk voor het autoriseren van de klant op een van de volgende manieren:- Schakelt over naar de systeembrowser en laat de klant inloggen en instemmen met het gevraagde
- Schakelt over naar web view in een beveiligde context, om de klant te laten inloggen en in te stemmen met het gevraagde
Deze beveiligde context voor #2 is momenteel beschikbaar als de Amazon Shopping-app op Android-apparaten. Door Amazon gemaakte apparaten met Fire OS (bijvoorbeeldamp(Le Kindle Fire, Fire Phone en Fire TV) gebruiken deze optie altijd, zelfs als er geen Amazon Shopping-app op het apparaat staat. Hierdoor zal deze API, als de klant al is aangemeld bij de Amazon Shopping-app, de inlogpagina overslaan, wat leidt tot een Eenmalige aanmelding ervaring voor de klant.
Wanneer uw aanvraag wordt geautoriseerd, is deze geautoriseerd voor een of meer datasets, de zogenaamde scopes. De eerste parameter is een reeks bereiken die de gebruikersgegevens omvatten die u opvraagt bij Inloggen met Amazon. De eerste keer dat een gebruiker inlogt op uw app, krijgt hij/zij een lijst te zien met de gegevens die u opvraagt en om goedkeuring vraagt. Inloggen met Amazon ondersteunt momenteel drie scopes: profile, die de gebruikersnaam, het e-mailadres en de Amazon-account-ID bevat; profile:gebruikersnaam, die alleen het Amazon-account-ID bevat; en Postcode, die de postcode van de gebruiker bevat.
De beste manier om autoriseren aan te roepen is asynchroon, zodat u de UI-thread niet hoeft te blokkeren of zelf een werkthread hoeft te maken. Bellen asynchroon autoriseren, passeer een object dat de AuthorizationListenerinterface als laatste parameter:privé AmazonAuthorizationManager mAuthManager; @ Override
beschermd void onCreate(Bundle opgeslagenInstanceState) {
super.onCreate (opgeslagenInstanceState);
mAuthManager = nieuwe AmazonAuthorizationManager (dit, Bundle.EMPTY);// Zoek de knop met de login_with_amazon ID
// en het opzetten van een klik-handler
mLoginButton = (Knop) zoekenViewById(R.id.login_with_amazon);
mLoginButton.setOnClickListener(nieuwe OnClickListener() {
@ Override
openbare leegte onClick(View v) {
mAuthManager.authorize(
nieuwe String []{“profile","Postcode"},
Bundle.EMPTY, nieuwe AuthorizeListener());
}
});
} - Maak een ProfileLuisteraar.
ProfileLuisteraar is onze naam voor een klasse die de APIListener interface, en zal het resultaat van de wordt professionalfile telefoongesprek. APIListener bevat twee methoden: op Succes en onError (het ondersteunt niet onAnnuleren omdat er geen manier is om een wordt professionalfile bellen). op Succes ontvangt een Bundle-object met profile gegevens, terwijl opEriror ontvangt een AuthError object met informatie over de fout.privéklasse ProfileListener implementeert APIListener{ /* wordt professionalfile succesvol voltooid. */ @Overschrijven
public void onSuccess(bundelantwoord) {}
/* Er is een fout opgetreden tijdens de poging om de pro te verkrijgenfile. */ @Overschrijven
public void onError (AuthError ae) {
}
} - Implementeren op Succes voor jouw AuthorizeListener.
In opSucces, telefoongesprek AmazonAuthorizationManager.getProfile de klant pro . ophalenfile. wordt professionalfile, maakt net als autoriseren gebruik van een asynchrone luisteraarinterface. Voor wordt professionalfile, dat interface is APIListener, notAuthorizationListener.
/* Autorisatie is succesvol voltooid. */ @Overschrijven
public void onSuccess(bundelantwoord) {
mAuthManager.getProfile(nieuwe profileLuisteraar());} - Implementeren opSuccesvoor jouw ProfileLuisteraar.
opSuccesshas twee hoofdtaken: het ophalen van de profile gegevens uit de antwoordbundel en om de gegevens door te geven aan de gebruikersinterface. updateProfileDatais een hypothetische functie die uw app zou kunnen implementeren om profile details. setLoggedInState, een andere hypothetische functie zou aangeven dat een gebruiker is ingelogd en hem/haar een middel geven uitloggen.
Om de pro . op te halenfile gegevens uit de bundel gebruiken we namen die zijn opgeslagen door de AuthzConstanten klasse. De op Succes bundel bevat de profile gegevens in een BUNDLE_KEY.PROFILE bundel.
Binnen de proffile bundel, de bereikgegevens worden geïndexeerd onder PROFILE_KEY.NAME, PROFILE_KEY.EMAIL, PROFILE_KEY.USER_ID, En PROFILE_KEY.POSTAL_CODE. PROFILE_KEY.POSTAL_CODE is alleen inbegrepen als u de aanvraag indient postcode domein.@ Override
public void onSuccess(bundelantwoord) {
// Haal de gegevens op die we nodig hebben van de Bundle Bundle profileBundel = response.getBundle(
AuthzConstanten.BUNDLE_KEY.PROFILE.val);
Stringnaam = profileBundel.getString(
AuthzConstanten.PROFILE_KEY.NAME.val);
Tekenreeks e-mail = profileBundel.getString(
AuthzConstanten.PROFILE_KEY.EMAIL.val);
String-account = profileBundel.getString(
AuthzConstanten.PROFILE_KEY.USER_ID.val);
String postcode = profileBundel.getString(
AuthzConstanten.PROFILE_KEY.POSTAL_CODE.val);
runOnUiThread(new Runnable() { @Override
openbare leegte run() {
updateProfileGegevens (naam, e-mailadres, account, postcode);
}
});
} - Implementeren opFout voor jouw ProfileLuisteraar.
opFout omvat een AuthError object met details over de fout./* Er is een fout opgetreden tijdens de poging om de pro te verkrijgenfile. */ @Overschrijven
public void onError (AuthError ae) {
/* Probeer het opnieuw of informeer de gebruiker over de fout */
} - Implementeren opFoutvoor jouw AuthorizeListener.
/* Er is een fout opgetreden tijdens de poging om de toepassing te autoriseren.
*/
@ Override
public void onError (AuthError ae) {
/ * Informeer de gebruiker over de fout * /
} - Implementeren opAnnulerenvoor jouw AuthorizeListener.
Omdat het autorisatieproces een inlogscherm (en mogelijk een toestemmingsscherm) toont aan de gebruiker in a web browser (of een webview), de gebruiker krijgt de mogelijkheid om de login te annuleren of weg te navigeren van de web bladzijde. Als ze het inlogproces expliciet annuleren, onAnnuleren wordt genoemd. Als opCancelis gebeld, wilt u uw gebruikersinterface opnieuw instellen./* De autorisatie is geannuleerd voordat deze kon worden voltooid. */
@ Override
public void onCancel(Bundeloorzaak) {
/* reset de gebruikersinterface naar de status 'klaar om in te loggen' */
}Opmerking: Als de gebruiker weg navigeert van het inlogscherm in de browser of web view en terugschakelt naar uw app, zal de SDK niet detecteren dat het inloggen niet is voltooid. Als u gebruikersactiviteit in uw app detecteert voordat het inloggen is voltooid, kunt u ervan uitgaan dat ze de browser hebben verlaten en dienovereenkomstig reageren.
Controleer op gebruikersaanmelding bij opstarten
Als een gebruiker inlogt op uw app, de app sluit en de app later opnieuw opstart, is de app nog steeds geautoriseerd om gegevens op te halen. De gebruiker wordt niet automatisch uitgelogd. Bij het opstarten kunt u de gebruiker als ingelogd laten zien als uw app nog geautoriseerd is. In deze sectie wordt uitgelegd hoe u getToken kunt gebruiken om te zien of de app nog steeds geautoriseerd is.
- Maak een TokenListener.
TokenListener implementeert de APIListener interface, en zal het resultaat van de getToken-aanroep verwerken. APIListener bevat twee methoden: op Succes En opFout (het ondersteunt geen onAnnuleren omdat er geen manier is om een getToken bellen). op Succes ontvangt een Bundle-object met tokengegevens, while opFout ontvangt een AuthError object met informatie over de fout.privéklasse TokenListener implementeert APIListener{ /* getToken succesvol voltooid. */ @Overschrijven
public void onSuccess(bundelantwoord) {
}
/* Er is een fout opgetreden tijdens de poging om het token op te halen. */ @Overschrijven
public void onError (AuthError ae) {
}
} - In de opStart methode van uw activiteit, bel getToken om te zien of de applicatie nog steeds geautoriseerd is.
getToken haalt het onbewerkte toegangstoken op dat het AmazonAuthorizationManager gebruikt om toegang te krijgen tot een klantprofessionalfile. Als de tokenwaarde niet nul is, is de app nog steeds geautoriseerd en wordt er aangeroepen wordt professionalfile zou moeten slagen. getTokenvereist dezelfde reikwijdte die u in uw oproep om autorisatie heeft aangevraagd.
getTokensondersteuning asynchrone oproepen op dezelfde manier als getProfile, zodat u de UI-thread niet hoeft te blokkeren of zelf een werkthread hoeft te maken. Om getToken asynchroon aan te roepen, geeft u een object door dat de APIListener interface als laatste parameter.@ Override
beschermde leegte onStart(){
super.onStart
();mAuthManager.getToken(nieuwe String []{“profile","Postcode"},
nieuw
TokenListener());
} - Implementeren op Succes voor jouw TokenListener.
opSuccesshas twee taken: het token uit de bundel ophalen en, als het token geldig is, bellen wordt professionalfile.
Om de tokengegevens uit de bundel op te halen, gebruiken we namen die zijn opgeslagen door de AuthzConstanten klasse. De op Succes bundel bevat de tokengegevens in een BUNDLE_KEY.TOKEN-waarde. Als die waarde niet nul is, wordt deze exampik bel wordt professionalfile met behulp van dezelfde luisteraar die u in de vorige sectie hebt aangegeven (zie stappen 7 en 8)./* getToken succesvol voltooid. */
@ Override
public void onSuccess(bundelantwoord) {
laatste tekenreeks authzToken =
response.getString(AuthzConstants.BUNDLE_KEY.TOKEN.val);
als (!TextUtils.isEmpty(authzToken))
{
// Haal de professional opfile gegevens
mAuthManager.getProfile(nieuwe profileLuisteraar());
}
}
De clearAuthorizationState-methode wist de autorisatiegegevens van de gebruiker uit het lokale gegevensarchief van AmazonAuthorizationManager. Een gebruiker zal opnieuw moeten inloggen om de app pro te laten ophalenfile gegevens. Gebruik deze methode om een gebruiker uit te loggen of om inlogproblemen in de app op te lossen.
- Implementeer een afmelding
Wanneer een gebruiker succesvol is ingelogd, moet u een uitlogmechanisme bieden zodat ze hun profile gegevens en eerder geautoriseerde scopes. Uw mechanisme kan een hyperlink of een menu-item zijn. Voor dit bijvample zullen we een opKlik methode voor een knop. - Bel in uw afmeldingshandler clearAuthorizationState. clearAuthorizationState verwijdert de autorisatiegegevens van een gebruiker (toegangstokens, profile) bij de plaatselijke winkel. clearAuthorizationStatetakes geen parameters behalve an APIListener om succes terug te geven of
- Verklaar een anonieme APIListener.
Anonieme klassen zijn een nuttig alternatief voor het declareren van een nieuwe klasse die moet worden geïmplementeerd APIListener. Zien Gebruik de inlogknop en Get Profile Gegevens (p. 17) voor een examplet op verklaart listener-klassen. - Implementeren op Succes binnenin de APIListener
Wanneer clearAutorisatieStatus Als dit lukt, moet u uw gebruikersinterface bijwerken om verwijzingen naar de gebruiker te verwijderen en een inlogmechanisme bieden waarmee gebruikers zich opnieuw kunnen aanmelden. - Implementeren opFout binnenin de APIListener.
If clearAuthorizationStatereturns een fout, kunt u de gebruiker opnieuw laten proberen uit te loggen.@ Override
beschermd void onCreate(Bundle opgeslagenInstanceState) {
super.onCreate (opgeslagenInstanceState);
/ * Vorige opMaak weggelaten declaraties * /
// Zoek de knop met de uitlog-ID en stel een klik-handler in
mLogoutButton = (Knop) zoekenViewById(R.id.uitloggen);
mLogoutButton.setOnClickListener(nieuwe OnClickListener() {
@ Override
openbare leegte onClick(View v) {
mAuthManager.clearAuthorizationState(nieuw
APIListener() {
@ Override
public void onSuccess(Bundelresultaten) {
// Stel de uitgelogde status in de gebruikersinterface in
}
@ Override
public void onError (AuthError authError) {
// Log de fout
}
});
}
});
}
Sommige AmazonAuthorizationManager methoden retourneren een Future-object. Hierdoor kunt u de methode synchroon aanroepen in plaats van een luisteraar als parameter door te geven. Als u een Future-object gebruikt, mag u dit niet gebruiken in een UI-thread. Als u een UI-thread langer dan vijf seconden blokkeert, krijgt u een ANR-prompt (Application Not Responding). In het handvat de knop Inloggen en Get Profile Gegevens bijvample, de op Succes methode voor Luisteraar autoriseren wordt aangeroepen met een werkthread gemaakt door AmazonAuthorizationManager. Dit betekent dat het veilig is om die thread te gebruiken om getPiro aan te roepenfile synchroon. Om een synchrone oproep te doen, wijst u de retourwaarde from toe haalPirofile naar een toekomstig object en bel de gietmethode op dat object om te wachten totdat de methode is voltooid.
Toekomst.krijg retourneert een Bundle-object dat a bevat TOEKOMST_TYPE waarde van SUCCES, FOUT, or ANNULEREN. Als de methode een succes was, bevat dezelfde bundel PROFILE_KEY-waarden voor de professionalfile gegevens. Bijvoorbeeldampon:
/ * Autorisatie is met succes voltooid. * / @ Override public void onSuccess(bundelantwoord) { Future<Bundel> future = mAuthManager.getProfile(nul); Bundelresultaat = future.get();// Ontdek of de oproep is gelukt en haal de pro opfile Object future_type = resultaat.get(AuthzConstants.BUNDLE_KEY.FUTURE.val); if (future_type == AuthzConstants.FUTURE_TYPE.SUCCESS) { Tekenreeksnaam = resultaat.getString( AuthzConstants.PROFILE_KEY.NAME.val); String e-mail = resultaat.getString(AuthzConstants.PROFILE_KEY.EMAIL.val); String-account = result.getString( AuthzConstants.PROFILE_KEY.USER_ID.val); String postcode = resultaat.getString( AuthzConstants.PROFILE_KEY.POSTAL_CODE.val); runOnUiThread(new Runnable() { @Override public void run() {updateProfileGegevens (naam, e-mailadres, account, postcode); } }); } anders als (future_type == AuthzConstants.FUTURE_TYPE.ERROR) { // Foutobject ophalen AuthError authError = AuthError.extractError(resultaat); /* Gebruik authError om een fout te diagnosticeren */ } |
Inloggen met Amazon Aan de slag-gids voor Android – Download [geoptimaliseerd]
Inloggen met Amazon Aan de slag-gids voor Android – Download