Добрый день, хабросообщество.
Хочу поделиться своей разработкой — Android-библиотекой для работы с API Яндекс.
Денег.
Совсем недавно, 15 апреля, Яндекс открыл API для работы с Я.
Деньги.
Как и все ранее открытые API для работы с сервисами Яндекса, оно основано на авторизации через OAuth. В своей текущей реализации API позволяет запрашивать информацию об учетной записи, запрашивать список транзакций по счету и совершать платежи с использованием шаблонов.
Более подробная информация в документация , вопросы можно задать по адресу клуб разработчиков .
В результате его сняли библиотека И демо-приложение для Android, работа с кошельком через API. Фактической основой библиотеки приложения Android является класс ОАутактивити , от которого должна наследовать ваша активность, которая будет выполнять основную авторизацию приложения по OAuth. Результатом авторизации приложения является токен доступа, с помощью которого инициализируется класс.
ЯндексДеньгиСервис который с помощью этого токена может выполнять следующие действия (на данный момент)
- getAccountInfo: запрос информации об учетной записи — метод API Информация об аккаунте
- getOperationHistory: история операций запросов — метод API история операций
Пейджинг пока не поддерживается.
В качестве аргумента можно передать объект класса.
ЯндексДеньгиТипыОпераций для обозначения конкретной операции.
Библиотека также включает в себя хранилище токенов.
Чтобы не запрашивать авторизацию каждый раз, вы можете сохранить токен.
Для этой цели используются потомки классов AccessTokenStorage а именно ОбщиеНастройкиХранилище И EncryptedSharedPreferencesStorage .
Вторая реализация отличается тем, что хранит токен в зашифрованном виде с помощью алгоритма 3DES. Чтобы использовать авторизацию по протоколу OAuth, приложение должно определить класс, наследуемый от OAuthActivity, и реализовать в нем следующие методы:
- getRequiredPermissions — это метод, который возвращает набор разрешений, необходимых приложению.
Для Яндекс.
Денег мы используем контейнер ЯндексДеньгиРазрешения
- getClientId — идентификатор клиента в системе Яндекс.
Деньги.
Он будет выпущен на этапе регистрация приложения
- getAppId — идентификатор приложения.
Используется для составления адреса redirect_uri, фактически идентифицирует приложение при обработке ответа на авторизацию, лучше установить = имя пакета приложения
- getServer — сервер, с которого запрашивать авторизацию
- getTokenStorage — возвращает хранилище токенов, используемое для хранения полученного токена авторизации.
OAuthActivity.ACTION_AUTH_RESULT).
В намерении помещается знак успеха (.
AUTH_RESULT_EXTRA), равный AUTH_RESULT_OK или AUTH_RESULT_ERROR. Ошибка находится в Extra .
EXTRA_AUTH_RESULT_ERROR. Еще один важный момент. Для успешной обработки возврата от авторизации приложения (а он, по требованиям Яндекса, выполняется во встроенном браузере ОС) необходимо обработать OAuthActivity Intents, описываемые следующим фильтром правопреемника:
На самом деле это обработка перенаправления браузера на URL-адрес.<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="oauth" android:host="@string/app_id"/> </intent-filter>
oauth://appId (где appId — идентификатор приложения, такой же, как и в методе getAppId; он у меня сохранен в ресурсах приложения).
О демо-приложении.
Состоит из 3 мероприятий — AppLoginActivity , Аутактивити И Основная деятельность .
При первом запуске приложения AppLoginActivity предлагает пройти процедуру авторизации приложения (запускает AuthActivity, которая, в свою очередь, является наследником OAuthActivity).
Если приложение уже успешно прошло авторизацию, отображается диалог запроса PIN-кода.
AuthActivity, прежде чем пройти процедуру авторизации, запрашивает у пользователя новый ПИН-код, который в дальнейшем будет использоваться для хранения зашифрованного токена, а затем запускает авторизацию.
Результат авторизации возвращается в AppLoginActivity, где он обрабатывается (отображается сообщение об ошибке или сохраняется состояние — авторизация пройдена).
В случае успеха запускается MainAcitivty, который начинает вызывать службы.
В чем суть.
Хотелось бы получать критику по поводу реализации, собирать жалобы и предложения и т.д. Желающие спилить это воедино приветствуются.
P.S. Автор не имеет никакого отношения к Яндексу и Яндекс.
Деньгам.
РЕДАКТИРОВАТЬ с ключом, лежащим в исходниках, приложение не запустится.
Зарегистрируйте свое приложение с альтернативным адресом перенаправления и получите свой идентификатор.
Теги: #Android #yandex деньги #yandex api #Yandex.money #Yandex API #Android разработка
-
Вызов Оболочки Из Oracle
19 Oct, 24 -
Считаем Ли Мы Деньги Открыто? Введение.
19 Oct, 24 -
Пример Простого Cgi-Сервера
19 Oct, 24 -
Если «Она» Заинтересована В Тебе
19 Oct, 24