Влезте с Amazon Ръководство за начало за Android

Влезте с Amazon: Ръководство за начало за Android
Авторско право © 2016 Amazon.com, Inc., или неговите филиали. Всички права запазени. Amazon и логото на Amazon са търговски марки на Amazon.com, Inc. или неговите филиали. Всички други търговски марки, които не са собственост на Amazon, са собственост на съответните им собственици.
Първи стъпки за Android
В това ръководство ще ви покажем как да добавите Login with Amazon към вашето приложение за Android. След като завършите това ръководство, трябва да имате работещ бутон за влизане с Amazon в приложението си, за да позволите на потребителите да влизат със своите идентификационни данни за Amazon.
Инсталиране на Android Developer Tools
Вход с Amazon SDK за Android ще ви помогне да добавите Вход с Amazon към вашето приложение за Android. Препоръчваме ви да използвате Login with Amazon SDK за Android от developer.amazon.com с Android Studio. Можете обаче да използвате и приставката Eclipse с ADT. За стъпки как да инсталирате Android Studio и как да настроите Android SDK, вижте Вземете Android SDK на developer.android.com.
Когато Android SDK е инсталиран, намерете SDK мениджър приложение във вашата инсталация на Android. За да разработите за Login with Amazon, трябва да използвате SDK Manager, за да инсталирате SDK платформата за Android 2.2 или по-висока (API версия 8). Вижте Добавяне на SDK пакети на developer.android.com за повече информация относно използването на SDK
След като инсталирате SDK, настройте Android Virtual Device (AVD) за стартиране на вашите приложения. Вижте Управление Виртуални устройства на developer.android.com за инструкции за настройка на виртуално устройство.
Когато вашата среда за разработка е настроена, можете Инсталирайте Login with Amazon SDK за Android or Изпълнете Sample App, както е описано по-долу.
Инсталирайте Login with Amazon SDK за Android
Входът с Amazon SDK за Android се предлага в два пакета. Първият съдържа библиотеката с Android и подкрепящата документация. Вторият съдържа катоample приложение, което позволява на потребителя да влезе и показва техните проfile данни.
Ако още не сте инсталирали Android SDK или инструментите за разработка на Android, вижте Инсталиране инструментите за разработчици на Android раздел по-горе.
- Изтегляне цип и извлечете files към директория на вашия твърд диск.
Трябва да видите a док и а либ поддиректория. - отворено doc/index.html към view API за влизане с Amazon Android
- Вижте Инсталирайте библиотеката за влизане с Amazon, за инструкции как да добавите библиотеката и документацията към Android
Когато се инсталира Login with Amazon SDK за Android, можете Създайте нов вход с Amazon Проект, след Регистриране с Login с Amazon .
Изпълнете Sample App
За да стартирате sample приложение, импортирайте sampв работно пространство на AndroidStudio (ако използвате Eclipse, трябва също да добавите персонализирано хранилище за ключове за отстраняване на грешки към работното пространство. Вижте Добавете персонализираното отстраняване на грешки Хранилище за ключове в Eclipse раздел по-долу). API ключът, който sample прилагането изисква работното пространство да използва хранилището за ключове, което се доставя с sampле. Ако персонализираното хранилище за ключове не е инсталирано, потребителите няма да могат да влизат с помощта на sampле. Хранилището за ключове ще бъде взето автоматично, ако използвате AndroidStudio.
- Изтегляне SampleLoginWithAmazonAppForAndroid-src.zip и извлечете files към директория на вашия хард
- Стартирайте Android Studio и изберете Отворете съществуващ проект на Android Studio
- Прегледайте SampleLogin с приложението Amazon директория, получена след извличане на изтегления zip file в Стъпка
- От Изграждане меню, щракнете Направете проект, и изчакайте проектът да
- От Бягай меню, щракнете Бягай и след това щракнете върху SampleLogin с приложението Amazon.
- Изберете емулатора или свързаното устройство с Android и кликнете Бягай.
Добавете персонализираното хранилище за ключове за отстраняване на грешки в Eclipse
Ако използвате Eclipse, следвайте инструкциите по-долу, за да добавите персонализирано хранилище за ключове за отстраняване на грешки:
- В Предпочитания диалогов прозорец, изберете Android и Изграждане.
- До По поръчка Хранилище за ключове за отстраняване на грешки, щракнете Прегледайте.
- Навигирайте до sample app директория и изберете 3p.keystoreи след това щракнете OK.
Регистриране с Login с Amazon
Преди да можете да използвате Login with Amazon на a webсайт или в мобилно приложение, трябва да регистрирате приложение с Login with Amazon. Вашето приложение за влизане с Amazon е регистрацията, която съдържа основна информация за вашия бизнес и информация за всеки от тях webсайт или мобилно приложение, което създавате, което поддържа вход с Amazon. Тази бизнес информация се показва на потребителите всеки път, когато използват Login with Amazon на вашия webсайт или мобилно приложение. Потребителите ще видят името на вашето приложение, вашето лого и връзка към вашата политика за поверителност. Тези стъпки демонстрират как да регистрирате приложение за влизане в Amazon и да добавите приложение за Android към този акаунт.
Вижте следните теми:
- Регистрирайте своя вход с приложението Amazon
- Регистрирайте приложението си за Android
- Добавете приложение за Android за Amazon Appstore
- Добавете приложение за Android без Appstore
- Подписи за приложения за Android и ключове за API
- Определяне на подпис на приложение за Android
- Извличане на Android API ключ
Регистрирайте своя вход с приложението Amazon
- Отидете на https://login.amazon.com.
- Ако вече сте се регистрирали за Вход с Amazon, щракнете Конзола за приложения. В противен случай щракнете Регистрирайте се. Ще бъдете пренасочени към Seller Central, който обработва регистрацията на заявление за влизане с. Ако за първи път използвате Seller Central, ще бъдете помолени да настроите акаунт в Seller Central.
- Кликнете Регистрирайте ново приложение. The Регистрирайте своето приложение ще се появи формуляр:
a. В Регистрирайте своето приложение форма, въведете a Име и а Описание за вашето приложение.
The Име е името, което се показва на екрана за съгласие, когато потребителите се съгласят да споделят информация с вашето приложение. Това име се отнася за Android, iOS и webверсиите на сайта на вашето приложение.
b. Въведете a Съобщение за поверителност URL за вашето приложение
The Съобщение за поверителност URL е местоположението на политиката за поверителност на вашата компания или приложение (напрampле, http://www.example.com/privacy.html). Тази връзка се показва на потребителите на екрана за съгласие.
c. Ако искате да добавите a Изображение на лого за вашето приложение щракнете Прегледайте и намерете приложимото изображение.
Това лого се показва на екрана за вход и съгласие, за да представлява вашия бизнес или webсайт. Логото ще бъде свито до 50 пиксела във височина, ако е по-високо от 50 пиксела; няма ограничение за ширината на логото - Кликнете Запазване. Вашият sampрегистрацията на файл трябва да изглежда подобно на това:

След като основните ви настройки на приложението са запазени, можете да добавите настройки за конкретни webсайтове и мобилни приложения, които ще използват това влизане с акаунт в Amazon.
Регистрирайте приложението си за Android
За да регистрирате приложение за Android, имате избор да регистрирате приложение чрез Amazon Appstore (Добавете приложение за Android за Amazon Appstore, стр. 8) или директно с Вход с Amazon (Добавете Android Приложение без Appstore, стр. 9). Когато приложението ви бъде регистрирано, вие ще имате достъп до API ключ, който ще предостави достъп на приложението ви до услугата за оторизация Login with Amazon.
Забележка: Ако планирате да използвате Amazon Device Messaging в приложението си за Android, моля, свържете се лва- support@amazon.com с:
- Имейл адресът на акаунта в Amazon, който сте използвали, за да се регистрирате за Login with Amazon.
- Имейл адресът на акаунта в Amazon, който сте използвали за регистрация в Amazon Appstore (ако е различен).
- Името във вашия акаунт в Seller Central. (Щракнете върху Seller Central Настройки> Информация за акаунта> Информация за продавача, и използвайте Екранно име).
- Името във вашия акаунт на програмист в Amazon Appstore. (На сайта за разпространение на мобилни приложения щракнете Настройки > Компания Професионалистfile и използвайте Име на програмиста или име на фирма).
Добавете приложение за Android за Amazon Appstore
Следващите стъпки ще добавят приложение на Amazon Appstore към вашия акаунт за вход с Amazon:
- От екрана с приложения щракнете Настройки на Android. Ако вече имате регистрирано приложение за Android, потърсете Добавете API ключ бутон в Настройки на Android
The Подробности за приложението за Android ще се появи формуляр: - Изберете да в отговор на въпроса „Това приложение разпространява ли се през Amazon Appstore?“
- Въведете Етикет на вашето приложение за Android. Това не трябва да е официалното име на вашето приложение. Той просто идентифицира това конкретно приложение за Android сред приложенията и webсайтове, регистрирани във вашето приложение за вход с Amazon.
- Добавете своя ID на Amazon Appstore.
- Ако сте подписали сами приложението си, добавете информация за самоподписване. Това ще ви позволи да получите API ключ по време на разработката, без да използвате директно Appstore:
a. Ако вашето приложение не се подписва през Amazon Appstore, изберете Да в отговор на въпроса „Това приложение самоподписано ли е?“
The Подробности за приложението за Android формата ще се разшири:

b. Въведете своя Име на пакета.
Това трябва да съвпада с името на пакета на вашия проект за Android. За да определите името на пакета на вашия Android проект, отворете проекта в избрания от вас инструмент за разработчици на Android.
отворено AndroidManifest.XML в Package Explorer и изберете Манифест раздел. Първият запис е името на пакета.
c. Въведете приложението Подпис.
Това е SHA-256 хеш стойност, използвана за проверка на вашето приложение. Подписът трябва да бъде под формата на 32 шестнадесетични двойки, разделени с двоеточия (напрampле: 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). Вижте Подписи за приложения за Android и ключове за API за стъпки, които можете да използвате, за да извлечете подписа от вашия проект. - Кликнете Запазване.
Ако различните версии на вашето приложение имат различни подписи или имена на пакети, например за една или повече тестови версии и производствена версия, всяка версия изисква свой собствен API ключ. От Настройки на Android на вашето приложение, щракнете върху Добавете API ключ бутон, за да създадете допълнителни ключове за вашето приложение (по един за версия).
Подписи за приложения за Android и ключове за API
Подписът на приложението е хеш стойност SHA-256, която се прилага към всяко приложение за Android, когато е изградено. Amazon използва подписа на приложението за изграждане на вашия API ключ. API ключът позволява на услугите на Amazon да разпознават вашето приложение. Ако използвате Amazon Appstore за подписване на вашето приложение, API ключът се предоставя автоматично. Ако не използвате Amazon Appstore, ще трябва да управлявате вашия API ключ ръчно.
Подписите на приложението се съхраняват в хранилище за ключове. Като цяло за приложенията за Android има хранилище за ключове за отстраняване на грешки и хранилище за ключове за освобождаване. Хранилището за ключове за отстраняване на грешки се създава от плъгина Android Development Tools за Eclipse и се използва по подразбиране. Можете да намерите местоположението на хранилището за ключове за отстраняване на грешки в Eclipse, като щракнете прозорец, след което изберете Предпочитания > Android > Компилация. От този екран можете също да добавите свое собствено хранилище за ключове за отстраняване на грешки. За Android Studio, от Изграждане меню, изберете Редактиране на типове компилация, след което отидете на Подписване и намерете хранилището за отстраняване на грешки в Магазин File поле.
Хранилище за ключове за освобождаване обикновено се създава, когато експортирате приложението си за Android, за да създадете подписан APK file.
Чрез процеса на експортиране, ако създавате ново хранилище за ключове за версия, ще изберете неговото местоположение. от
по подразбиране ще бъде поставен на същото място като вашето KeyStore за отстраняване на грешки по подразбиране.
Ако сте регистрирали приложението си с помощта на подписа за отстраняване на грешки по време на разработката, ще трябва да добавите нова настройка за Android към приложението си, когато сте готови да пуснете приложението. Новата настройка на приложението трябва да използва подписа от хранилището на ключове за освобождаване.
Вижте Подписване на вашите приложения на developer.android.com за повече информация.
Определете подписа на приложението за Android
- Ако имате подписан APK файл file:
a. Разархивирайте APK файла file и извлечете CERT.RSA. (Можете да преименувате APK разширението на ZIP, ако е необходимо).
b. От командния ред изпълнете:keytool -printcert -file CERT.RSA Keytoolis разположен в кошче директория на вашата инсталация на Java.
- Ако имате хранилище за ключове file:
a. От командния ред изпълнете:keytool -list -v -alias -магазин за ключовеfileиме> Keytool се намира в директорията bin на вашата Java инсталация. Псевдонимът е името на ключа, използван за подписване на приложението.
b. Въведете паролата за клавиша и натиснете Въведете. - Под Сертификатни пръстови отпечатъци, копирайте SHA256 стойност.
Изтеглете Android API Key
Когато сте регистрирали настройка за Android и сте предоставили подпис на приложение, можете да извлечете API ключа от страницата за регистрация за вашето приложение за вход с Amazon. Ще трябва да поставите този API ключ в file във вашия Android проект. Докато не го направите, приложението няма да бъде упълномощено да комуникира с услугата за разрешение за влизане с Amazon.
- Отидете на https://login.amazon.com.
- Кликнете Конзола за приложения.
- В Приложения вляво, изберете вашия
- Намерете приложението си за Android под Настройки на Android (Ако все още не сте регистрирали приложение за Android, вижте Добавете приложение за Android за Amazon Appstore).
- Кликнете Генериране на API ключова стойност. Изскачащ прозорец ще покаже вашия API ключ. За да копирате ключа, щракнете Изберете Всички за да изберете целия
Забележка: Ключовата стойност на API се основава отчасти на времето, когато е генерирана. По този начин последващите API ключови стойности, които генерирате, може да се различават от оригинала. Можете да използвате която и да е от тези стойности на ключ на API в приложението си, тъй като всички те са валидни. - Вижте Добавете вашия API ключ към вашия проект за инструкции за добавяне на API ключа към вашия Android
Създаване на вход с Amazon Project
В този раздел ще научите как да създадете нов Android проект за Login with Amazon, да конфигурирате проекта и да добавите код към проекта, за да влезете в потребител с Login with Amazon. Ще опишем стъпките за Android Studio, но можете да приложите аналогични стъпки към всеки IDE или инструмент за разработка на Android по ваш избор.
Вижте следните теми:
- Създайте нов вход с Amazon Project
- Инсталирайте Login with Amazon Library
- Активирайте Content Assist за вход с Amazon Library
- Задайте мрежови разрешения за вашето приложение
- Добавете вашия API ключ към вашия проект
- Премахнете Sample App Custom Debug Keystore
- Обработвайте промените в конфигурацията за вашата дейност
- Добавете оторизираща дейност към вашия проект
- Добавете вход с бутон Amazon към вашето приложение
- Манипулирайте бутона за вход и вземете Profile данни
- Проверете за потребителски вход при стартиране
- Изчистете състоянието на оторизацията и излезте от потребител
- Синхронно извикване на методи на Amazon Authorization Manager
Създайте нов вход с Amazon Project
Ако все още нямате проект за приложение за използване на Login with Amazon, следвайте инструкциите по-долу, за да го създадете. Ако имате съществуващо приложение, преминете към Инсталирайте Login with Amazon Library .
- Стартирайте Инструмент за разработка на Android.
- От File меню, изберете Нов и Проект.
- Въведете Име на приложението и Име на компанията за вашия
- Въведете Приложение и име на фирмата съответстващо на името на пакета, което сте избрали, когато сте регистрирали приложението си с Login с Amazon.
Ако все още не сте регистрирали приложението си, изберете a Име на пакета и след това следвайте инструкциите в Регистриране с Login с Amazon раздел, след като създадете своя проект. Ако името на пакета на вашето приложение не съвпада с регистрираното име на пакета, вашите обаждания за влизане с Amazon няма да успеят. - Изберете a Минимално необходим SDK на API 8: Android 2 (Froyo) или по-нова версия и щракнете Следваща.
- Изберете вида дейност, която искате да създадете, и щракнете върху Следваща.
- Попълнете съответните подробности и кликнете Завършете.
Вече ще имате нов проект в работното си пространство, който можете да използвате, за да се обадите на Login with Amazon.
Инсталирайте Login with Amazon Library
Ако все още не сте изтеглили Login with Amazon SDK за Android, вижте Инсталирайте Вход с Amazon SDK за Android (стр. 4).
- С вашия проект, отворен в Android Developer Tools, в Project Explorer, щракнете с десния бутон върху вашия Проект.
- Ако се извика папка библиотеки вече не присъства, създайте
- Копирайте login-with-amazon-sdk.jar file от File системаи след това го поставете в библиотеки директория под вашия проект/приложение.
- Щракнете с десен бутон login-with-amazon-sdk.jarи проверете Добавяне като библиотека
Активирайте Content Assist за влизане с Amazon Library в Eclipse
За да активирате поддръжката за подпомагане на съдържанието на Eclipse в проект на Android, е необходимо да използвате a .свойства file. За повече информация относно помощното съдържание вж Помощник за съдържание/код onhelp.eclipse.org.
За да активирате поддръжката за подпомагане на съдържанието на Eclipse в проект на Android, е необходимо да използвате a .свойства file. За повече информация относно помощното съдържание вж Помощник за съдържание/код onhelp.eclipse.org.
- In Windows Explorer, навигирайте до документи папка за Login with Amazon SDK за Android и копирайте папката в
- С отворен проект отидете на Изследовател на пакети и изберете библиотеки Кликнете Редактиране от главното меню и изберете Залепете. Сега трябва да имате a libs\docs указател.
- Изберете библиотеки Кликнете File от главното меню и изберете Нов иFile.
- В Нов File диалогов прозорец, въведете login-with-amazon-sdk.jar.properties и щракнете Завършете.
- Eclipse трябва да се отвори login-with-amazon-sdk.jar.properties в текстовия редактор. В текстовия редактор добавете следния ред към file:
doc=документи - От File меню, щракнете Запазване.
- Може да се наложи да рестартирате Eclipse, за да влязат в сила промените
Задайте мрежови разрешения за вашето приложение
За да може приложението ви да използва Login with Amazon, то трябва да има достъп до интернет и да има достъп до информация за състоянието на мрежата. Вашето приложение трябва да заяви тези разрешения във вашия Android манифест, ако все още не го прави.
ЗАБЕЛЕЖКА: Процедурните стъпки по-долу са специфични за добавяне на разрешения в Eclipse. Ако използвате Android Studio или друга IDE, можете да пропуснете всички номерирани стъпки по-долу. Вместо това копирайте редовете с код, показан под екранната снимка, и ги поставете в AndroidManifest.xml file, извън блока на приложението.
- In Пакет Изследовател, щракнете двукратно xml.
- На Разрешения раздел, щракнете върху Добавете.
- Изберете Използва разрешение и щракнете OK.
- Вдясно от Разрешения, намерете Атрибути за разрешение за използване
- В Име кутия, въведете разрешение. ИНТЕРНЕТ или го изберете от падащото меню.
- На Разрешения раздел, щракнете върху Добавете
- Изберете Използва разрешение и щракнете OK.
- В Име кутия, въведете разрешение.ACCESS_NETWORK_STATE или го изберете от падащото меню
- От File меню, щракнете Запазване.
Вашите разрешения за манифест вече трябва да имат следните стойности:

В AndroidManifest.xml сега трябва да видите тези записи под елемента на манифеста:
Добавете вашия API ключ към вашия проект
Когато регистрирате приложението си за Android с Login с Amazon, вие получавате API ключ. Това е идентификатор, който Amazon Authorization Manager ще използва, за да идентифицира вашето приложение в услугата за разрешаване на Login с Amazon. Ако използвате Amazon Appstore за подписване на приложението си, Appstore ще предостави API ключа автоматично. Ако не използвате Amazon Appstore, Amazon Authorization Manager зарежда тази стойност по време на изпълнение от api_key.txt file в активи указател.
- Ако все още нямате своя API ключ, следвайте инструкциите в Изтеглете Android API Key (стр. 11).
- С вашия ADT проект отворен, от File меню, щракнете Нов и изберете Текст без заглавие File. Сега трябва да имате прозорец на редактор за текст file наименуван Без заглавие 1 г. Добавете вашия API ключ към текста
- От File меню, щракнете Запиши като.
- В Запиши като диалогов прозорец, изберете активи директорията на вашия проект като родителска папка. За File име, влезте txt.
Премахнете Sample App Custom Debug Keystore
ЗАБЕЛЕЖКА: Тази стъпка е необходима само ако използвате Eclipse; ако използвате Android Studio, пропуснете този раздел.
Ако сте инсталирали Login with Amazon за Android sample в същото работно пространство, което използвате за приложението си за Android, може да имате зададено персонализирано хранилище за ключове за отстраняване на грешки за работното пространство. Трябва да изчистите персонализираното хранилище за ключове за отстраняване на грешки, за да използвате свой собствен API ключ.
- От главното меню щракнете прозорец и изберете Предпочитания.
- В Предпочитания диалогов прозорец, изберете Android и Изграждане.
- Изчистете По поръчка хранилище за ключове за отстраняване на грешки
- Кликнете OK.
Обработвайте промените в конфигурацията за вашата дейност
Ако потребител промени ориентацията на екрана или промени състоянието на клавиатурата на устройството, докато влиза в системата, той ще поиска рестартиране на текущата активност. Това рестартиране ще отхвърли неочаквано екрана за вход. За да предотвратите това, трябва да зададете активността, която използва метода за упълномощаване, за да обработва тези промени в конфигурацията ръчно. Това ще предотврати рестартиране на дейността.
- In Пакет Изследовател, щракнете двукратно xml.
- В Приложение раздел, намерете дейността, която ще обработва влизане с Amazon (напрampле, Основна дейност).
- Добавете следния атрибут към дейността, която сте намерили в Стъпка 2:
android: configChanges = ”клавиатура | скрита клавиатура | ориентация” Или за API 13 или по-нова версия:
android: configChanges = ”клавиатура | скрита клавиатура | ориентация | screenSize” - От File меню, щракнете Запазване
Сега, когато се случи промяна на ориентацията на клавиатурата или устройството, Android ще извика onConfigurationChanged метод за вашата дейност. Не е необходимо да прилагате тази функция, освен ако няма аспект от тези промени в конфигурацията, които искате да обработвате за вашето приложение
Когато потребителят кликне върху бутона Вход с Amazon, API ще стартира a web браузър, за да представи на потребителя страница за влизане и съгласие. За да работи тази активност на браузъра, трябва да добавите AuthorizationActivity към вашия манифест.
- In Пакет Изследовател, щракнете двукратно xml.
- В Приложение добавете следния код, заменяйки „com.example.app“ с името на вашия пакет за това приложение:
<активност android:name=
“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” />
<данни
android:host=”com.example.app” android:scheme=”amzn” />
вашето приложение. Този раздел дава стъпки за изтегляне на официално изображение за влизане с Amazon и сдвояването му с Android ImageButton.
- Добавете стандартен ImageButton към приложението си.
За повече информация относно бутоните на Android и класа ImageButton вижте Бутони на developer.android.com. - Дайте идентификатор на вашия бутон.
В XML декларацията на бутона задайте атрибута android:id на @+id/login_with_amazon. Напримерampле:android: id = ”@ + id / login_with_amazon” - Изберете изображение на бутон.
Консултирайте се с нашия вход с Amazon Указания за стил за списък с бутони, които можете да използвате в приложението си. Изтеглете копие на LWA_Android.zip file. Извлечете копие на предпочитания от вас бутон за всяка плътност на екрана, която вашето приложение поддържа (xxhdpi, xhdpi, hdpi, mdpi или tvdpi). За повече информация относно поддържането на множество плътности на екрана в Android вижте Алтернативни оформления в темата „Поддържане на множество екрани“ ondeveloper.android.com. - Копирайте съответното изображение на бутона files към вашия проект.
За всяка плътност на екрана, която поддържате (xhdpi, hdpi, mdpi или ldpi), копирайте изтегления бутон в res / drawable директория за тази плътност на екрана. - Декларирайте изображението на бутона.
В XML декларацията на бутона задайте атрибута android:src на името на бутона, който сте избрали. Напримерampле:android: src = ”@ drawable / btnlwa_gold_loginwithamazon.png” 6. Заредете приложението си и проверете дали бутонът вече има изображение за влизане с Amazon. Трябва да проверите дали бутонът се показва правилно за всяка поддържана от вас плътност на екрана.
Този раздел обяснява как да извикате авторизацията и getProfile API за влизане на потребител и извличане на професfile данни. Това включва създаване на слушател onClick за вашия бутон Login with Amazon в метода onCreate на вашето приложение.
- Добавете Login with Amazon към вашия Android проект. Вижте Инсталирайте Login with Amazon Library .
- Импортирайте Login с Amazon API във вашия източник
За да импортирате API за влизане с Amazon, добавете следните инструкции за импортиране към вашия източник file:import com.amazon.identity.auth.device.AuthError; импортиране
com.amazon.identity.auth.device.authorization.api.
AmazonAuthorizationManager; импортиране
com.amazon.identity.auth.device.authorization.api. AuthorizationListener; импортиране на com.amazon.identity.auth.device.authorization.api.AuthzConstants; - Инициализиране AmazonAuthorizationManager.
Ще трябва да декларирате AmazonAuthorizationManager променлива и създайте нов екземпляр на класа. Създаването на нов екземпляр изисква само текущия ви контекст на приложение и празен пакет. Най-доброто място за инициализиране AmazonAuthorizationManager е в onCreate метод на вашата дейност. Напримерampле: - Създайте AuthorizeLiistener.
AuthorizeListener внедрява интерфейса AuthorizationinListener и ще обработва резултата от оторизирайте повикване. Той съдържа три метода: oinSuccess, onError, и onCanceil. Всеки метод получава или Bundle, или an AuthError обект.частен клас AuthorizeListener внедрява AuthorizationListener{
/ * Упълномощаването е завършено успешно. * /
@Отмени
public void onSuccess(Bundle response) {
}
/* Възникна грешка при опита за оторизиране на приложението.
*/
@Отмени
публична невалидна onError (AuthError ae) {
}
/* Упълномощаването беше отменено, преди да може да бъде завършено. */
@Отмени
public void onCancel(Bundle reason) {
}
} - Обадете се AmazonAuthorizationManager.authorize.
В onClick манипулатор за вашия бутон Вход с Amazon, извикайте авторизиране, за да подканите потребителя да влезе и да упълномощи вашето приложение.
Този метод отговаря за упълномощаването на клиента по един от следните начини:- Превключва към системния браузър и позволява на клиента да влезе и да даде съгласие за исканото
- Превключва към web view в защитен контекст, за да позволи на клиента да влезе и да даде съгласие за исканото
Този защитен контекст за #2 в момента е достъпен като приложението Amazon Shopping на устройства с Android. Създадени от Amazon устройства, работещи с Fire OS (напрample Kindle Fire, Fire Phone и Fire TV) винаги използвайте тази опция, дори ако на устройството няма приложение Amazon Shopping. Поради това, ако клиентът вече е влязъл в приложението Amazon Shopping, този API ще пропусне страницата за вход, което ще доведе до Единично влизане опит за клиента.
Когато вашето приложение е оторизирано, то е оторизирано за един или повече набори от данни, известни като обхвати. Първият параметър е масив от обхвати, които обхващат потребителските данни, които изисквате от Login with Amazon. Първият път, когато потребител влезе в приложението ви, ще му бъде представен списък с данните, които искате, и ще бъде поискано одобрение. Влизането с Amazon в момента поддържа три обхвата: profile, който съдържа името на потребителя, имейл адреса и идентификатора на акаунта в Amazon; професионалистfile:user_id, който съдържа само идентификатора на акаунта в Amazon; и пощенски код, който съдържа пощенския код на потребителя.
Най-добрият начин за извикване на авторизиране е асинхронно, така че не е нужно да блокирате нишката на потребителския интерфейс или да създавате своя собствена работна нишка. Да се обади оторизирам асинхронно, премине обект, който поддържа AuthorizationListenerinterface като последен параметър:частен AmazonAuthorizationManager mAuthManager; @Отмени
protected void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
mAuthManager = нов AmazonAuthorizationManager(това, Bundle.EMPTY);// Намерете бутона с идентификационния номер на login_with_amazon
// и настройте манипулатор на кликвания
mLoginButton = (Бутон) намиранеViewById(R.id.login_with_amazon);
mLoginButton.setOnClickListener(нов OnClickListener() {
@Отмени
обществена празнота onClick (View v) {
mAuthManager.authorize(
нов низ []{“проfile","пощенски код"},
Bundle.EMPTY, нов AuthorizeListener());
}
});
} - Създайте a ПрофесионалистfileСлушател.
ПрофесионалистfileСлушател е нашето име за клас, който имплементира APIListener интерфейс и ще обработи резултата от getProfile обаждане. APIListener съдържа два метода: на успеха и onError (не поддържа onCancel защото няма начин да отмените a getProfile обади се). на успеха получава Bundle обект с profile данни, докато onEriror получава AuthError обект с информация за грешката.частен клас ProfileСлушателят имплементира APIListener{ /* getProfile завършено успешно. */ @Override
public void onSuccess(Bundle response) {}
/* Имаше грешка по време на опита за получаване на profile. */ @Override
публична невалидна onError (AuthError ae) {
}
} - внедрите на успеха за вашия AuthorizeListener.
In onSuccess, обаждане AmazonAuthorizationManager.getProfile за извличане на клиента проfile. getProfile, подобно на авторизирането, използва асинхронен интерфейс за слушане. За getProfile, този интерфейс е APIListener, notAuthorizationListener.
/* Упълномощаването беше завършено успешно. */ @Override
public void onSuccess(Bundle response) {
mAuthManager.getProfile(нов ProfileСлушател());} - внедрите onSuccessfor вашият ПрофесионалистfileСлушател.
onSuccesshas две основни задачи: да извлечете проfile данни от пакета с отговори и за предаване на данните към потребителския интерфейс. updateProfileDatais хипотетична функция, която вашето приложение може да приложи, за да показва професионалистиfile подробности. setLoggedInState, друга хипотетична функция би посочила, че даден потребител е влязъл и би му предоставила средство за излизане.
За да извлечете проfile данни от пакета, ние използваме имена, съхранени от AuthzConstants клас. The на успеха пакетът съдържа проfile данни в BUNDLE_KEY.PROFILE пакет.
В рамките на професионалистаfile пакет, данните за обхвата са индексирани под PROFILE_KEY.NAME, PROFILE_KEY.EMAIL, PROFILE_KEY.USER_ID, и PROFILE_KEY.POSTAL_CODE. PROFILE_KEY.POSTAL_CODE се включва само ако поискате пощенски_код обхват.@Отмени
public void onSuccess(Bundle response) {
// Извличане на данните, от които се нуждаем, от Bundle Bundle profileПакет = response.getBundle(
AuthzConstants.BUNDLE_KEY.PROFILE.val);
Име на низ = проfileBundle.getString(
AuthzConstants.PROFILE_KEY.NAME.val);
Имейл на низ = професионалистfileBundle.getString(
AuthzConstants.PROFILE_KEY.EMAIL.val);
Низов акаунт = професионалистfileBundle.getString(
AuthzConstants.PROFILE_KEY.USER_ID.val);
Низ пощенски код = profileBundle.getString(
AuthzConstants.PROFILE_KEY.POSTAL_CODE.val);
runOnUiThread(new Runnable() { @Override
public void run() {
updateProfileДанни (име, имейл, акаунт, пощенски код);
}
});
} - внедрите onError за вашия ПрофесионалистfileСлушател.
onError включва ан AuthError обект, съдържащ подробности за грешката./* Имаше грешка по време на опита за получаване на profile. */ @Override
публична невалидна onError (AuthError ae) {
/* Опитайте отново или информирайте потребителя за грешката */
} - внедрите onErrorfor вашият AuthorizeListener.
/* Възникна грешка при опита за оторизиране на приложението.
*/
@Отмени
публична невалидна onError (AuthError ae) {
/ * Информирайте потребителя за грешката * /
} - внедрите onCancelfor вашият AuthorizeListener.
Тъй като процесът на оторизация представя екран за вход (и евентуално екран за съгласие) на потребителя в web браузър (или a webview), потребителят ще има възможност да отмени влизането или да излезе от web страница. Ако те изрично отменят процеса на влизане, onCancel е наречен. Ако onCancelis наречено, ще искате да нулирате потребителския си интерфейс./* Упълномощаването беше отменено, преди да може да бъде завършено. */
@Отмени
public void onCancel(Bundle reason) {
/* нулиране на потребителския интерфейс до състояние на готовност за влизане */
}Забележка: Ако потребителят се отдалечи от екрана за вход в браузъра или web view и превключва обратно към вашето приложение, SDK няма да открие, че влизането не е завършено. Ако откриете потребителска активност в приложението си, преди влизането да е завършено, можете да приемете, че са се отдалечили от браузъра и да реагирате по съответния начин.
Проверете за потребителски вход при стартиране
Ако потребител влезе в приложението ви, затвори го и го рестартира по-късно, приложението все още е упълномощено да извлича данни. Потребителят не се отписва автоматично. При стартиране можете да покажете потребителя като влязъл, ако приложението ви все още е упълномощено. Този раздел обяснява как да използвате getToken, за да видите дали приложението все още е упълномощено.
- Създайте a TokenListener.
TokenListener прилага на APIListener интерфейс и ще обработи резултата от извикването на getToken. APIListener съдържа два метода: на успеха и onError (не поддържа onCancel защото няма начин да отмените a getToken обади се). на успеха получава обект Bundle с токен данни, докато onError получава AuthError обект с информация за грешката.частен клас TokenListener имплементира APIListener{ /* getToken завършен успешно. */ @Override
public void onSuccess(Bundle response) {
}
/* Възникна грешка по време на опита за получаване на токена. */ @Override
публична невалидна onError (AuthError ae) {
}
} - В onStart метод на вашата дейност, обадете се getToken за да видите дали приложението все още е разрешено.
getToken извлича суровия маркер за достъп, който AmazonAuthorizationManager използва за достъп до клиент проfile. Ако стойността на токена не е нулева, тогава приложението все още е упълномощено и има извикване към getProfile трябва да успее. getTokenизисква същите обхвати, които сте поискали в разговора си за упълномощаване.
getTokensподдържа асинхронни извиквания по същия начин като getProfile, така че не е нужно да блокирате нишката на потребителския интерфейс или да създавате своя собствена работна нишка. За да извикате getToken асинхронно, подайте обект, който поддържа APIListener интерфейс като краен параметър.@Отмени
защитено недействително onStart(){
super.onStart
();mAuthManager.getToken(нов низ []{“проfile","пощенски код"},
нов
TokenListener());
} - внедрите на успеха за вашия TokenListener.
onSuccesshas две задачи: да извлече токена от пакета и ако токенът е валиден, да извика getProfile.
За да извлечем данните за токена от пакета, ние използваме имена, съхранени от AuthzConstants клас. The на успеха пакетът съдържа данните за токена в стойност BUNDLE_KEY.TOKEN. Ако тази стойност не е нула, този example призовава getProfile използвайки същия слушател, който сте декларирали в предишния раздел (вижте стъпки 7 и 8)./* getToken завършен успешно. */
@Отмени
public void onSuccess(Bundle response) {
окончателен низ authzToken =
response.getString(AuthzConstants.BUNDLE_KEY.TOKEN.val);
ако (!TextUtils.isEmpty(authzToken))
{
// Извличане на професионалистаfile данни
mAuthManager.getProfile(нов ProfileСлушател());
}
}
Методът clearAuthorizationState ще изчисти данните за оторизация на потребителя от локалното хранилище на данни на AmazonAuthorizationManager. Потребителят ще трябва да влезе отново, за да може приложението да извлече profile данни. Използвайте този метод, за да излезете от потребител или да отстраните проблеми с влизането в приложението.
- Приложете излизане
Когато потребител успешно влезе, трябва да предоставите механизъм за излизане, за да може да изчисти своя професионалистfile данни и предварително разрешени обхвати. Вашият механизъм може да бъде хипервръзка или елемент от менюто. За този бившample ние ще създадем onClick метод за бутон. - Във вашия манипулатор за излизане, обадете се clearAuthorizationState. clearAuthorizationState ще премахне данните за оторизация на потребителя (токени за достъп, проfile) от местния магазин. clearAuthorizationStatetakes няма параметри с изключение на an APIListener да върне успеха или
- Обявете анонимен APIListener.
Анонимните класове са полезна алтернатива на декларирането на нов клас за внедряване APIListener. Вижте Манипулирайте бутона за вход и вземете Profile данни (стр. 17) за ан exampнека декларира класове за слушатели. - внедрите на успеха вътре в APIListener
Кога clearAuthorizationState успее, трябва да актуализирате потребителския си интерфейс, за да премахнете препратките към потребителя и да предоставите механизъм за влизане, който потребителите могат да използват, за да влизат отново. - внедрите onError вътре в APIListener.
If clearAuthorizationStatereturns грешка, можете да позволите на потребителя да опита да излезе отново.@Отмени
protected void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
/ * Предишно на Създаване на декларации пропуснати * /
// Намерете бутона с идентификатора за излизане и настройте манипулатор на кликвания
mLogoutButton = (Бутон) намиранеViewById(R.id.logout);
mLogoutButton.setOnClickListener(нов OnClickListener() {
@Отмени
обществена празнота onClick (View v) {
mAuthManager.clearAuthorizationState(нов
APIListener() {
@Отмени
public void onSuccess(Bundle results) {
// Задаване на състояние на излизане в потребителския интерфейс
}
@Отмени
публична невалидна onError (AuthError authError) {
// Запишете грешката
}
});
}
});
}
някои AmazonAuthorizationManager методите връщат бъдещ обект. Това ви позволява да извиквате метода синхронно, вместо да предавате слушател като параметър. Ако все пак използвате обект Future, не трябва да го използвате в нишка на потребителския интерфейс. Ако блокирате нишка на потребителския интерфейс за повече от пет секунди, ще получите подкана за ANR (Приложението не отговаря). В Handle the Login Button и Get Profile Данни, напрample , the на успеха метод за AuthorizeListener се извиква с работна нишка, създадена от AmazonAuthorizationManager. Това означава, че е безопасно да използвате тази нишка за извикване на getPirofile синхронно. За да направите синхронно повикване, задайте върнатата стойност от getPirofile към бъдещ обект и извикайте gietmethod на този обект, за да изчака, докато методът завърши.
Fuuture.get връща обект Bundle, който съдържа a FUTURE_TYPE стойност на УСПЕХ, ГРЕШКА, or ОТМЕНЯНЕ. Ако методът е успешен, същият пакет ще съдържа PROFILE_KEY стойности за професионалистаfile данни. Напримерampле:
| / * Упълномощаването е завършено успешно. * / @Отмени public void onSuccess(Bundle response) { Future<Bundle> бъдеще = mAuthManager.getProfile(нула); Bundle result = future.get();// Разберете дали обаждането е успешно и извлечете професионалаfile Обект бъдеще_тип = result.get(AuthzConstants.BUNDLE_KEY.FUTURE.val); if (future_type == AuthzConstants.FUTURE_TYPE.SUCCESS) { Име на низ = result.getString( AuthzConstants.PROFILE_KEY.NAME.val); Имейл на низ = result.getString( AuthzConstants.PROFILE_KEY.EMAIL.val); Акаунт на низ = result.getString( AuthzConstants.PROFILE_KEY.USER_ID.val); Пощенски код на низ = result.getString( AuthzConstants.PROFILE_KEY.POSTAL_CODE.val); runOnUiThread(new Runnable() { @Override public void run() { updateProfileДанни (име, имейл, акаунт, пощенски код); } }); } else if (future_type == AuthzConstants.FUTURE_TYPE.ERROR) { // Получаване на обект за грешка AuthError authError = AuthError.extractError(резултат); /* Използвайте authError за диагностициране на грешка */ } |
Влезте с Amazon Начално ръководство за Android – Изтегляне [оптимизирано]
Влезте с Amazon Начално ръководство за Android – Изтегляне



