Yandex.Money APIとデモ用Androidアプリケーションを操作するためのライブラリ

こんにちは、habrosociety。



開発を共有したい-Yandex.Money APIを操作するためのAndroidライブラリ。



4月15日までに、YandexはYa.Moneyと連携するためのAPIを開きました。 Yandexサービスを操作するために以前に開いたすべてのAPIと同様に、OAuthによる認証に基づいています。 現在の実装では、APIを使用して、アカウントに関する情報を要求し、アカウントに対する操作のリストを要求し、テンプレートに従って支払いを行うことができます。 詳細- ドキュメントでは、開発者クラブで質問することができます。



その結果、APIを介してウォレットを操作するAndroid向けのライブラリデモアプリケーションは洗い流されました。



実際、Androidアプリケーションに関するライブラリの基盤はOAuthActivityクラスです。 これから Activityを継承し、アプリケーションの初期OAuth承認を実行します。 アプリケーションの承認の結果はアクセストークンになり、 YandexMoneyServiceクラスが初期化され、このトークンを使用して、次のアクションを実行できます(現時点では)



引数なしで呼び出されると、2番目のメソッドはすべての操作(クレジットと請求の両方)を返します。 ページングは​​まだサポートされていません。 特定の操作を示す引数としてクラスYandexMoneyOperationTypesのオブジェクトを渡すことができます。



ブリスターライブラリにはトークンストアもあります。 毎回認証を要求しないように、トークンを保存できます。 このために、 AccessTokenStorageクラスの継承者つまりSharedPreferencesStorageEncryptedSharedPreferencesStorage使用されます。 2番目の実装は、3DES暗号化形式でトークンを保存するという点で異なります。



OAuth認証を使用するには、アプリケーションで次のメソッドを実装してOAuthActivityの下位クラスを定義する必要があります。



承認の成功または失敗は、Action == "en.elifantiev.yandex.oauth.AUTH_RESULT"を送信してアクティビティを開始することで報告されます(OAuthActivity.ACTION_AUTH_RESULTを参照)。 インテントは、AUTH_RESULT_OKまたはAUTH_RESULT_ERRORに等しい成功フラグ(.AUTH_RESULT_EXTRA)を配置します。 エラーはExtra .EXTRA_AUTH_RESULT_ERRORにあります。



もう一つの重要なポイント。 アプリケーションの承認からの復帰を正常に処理するには(Yandexの要件によると、OSの組み込みブラウザーで実行されます)、相続人は次のフィルターで説明されるOAuthActivityインテントを処理する必要があります。



<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>
      
      





実際、これはブラウザーをURL oauthにリダイレクトする処理です。// appId(ここで、appIdはアプリケーション識別子です。getAppIdメソッドと同じ、アプリケーションリソースに保存します)。



デモアプリについて...



AppLoginActivityAuthActivityMainActivityの3つのアクティビティで構成されています。



アプリケーションの最初の起動時にAppLoginActivityは、アプリケーションの承認手順を実行することを提案します(OAuthActivityの後継であるAuthActivityを起動します)。 アプリケーションがすでに認証に成功している場合、PINコード要求ダイアログが表示されます。



認証手順を実行する前に、AuthActivityはユーザーに新しいPINコードを要求します。このPINコードは、暗号化されたトークンの保存に使用され、認証を開始します。



承認結果はAppLoginActivityに戻り、そこで処理されます(エラーメッセージが表示されるか、状態が保存されます-承認が完了します)。 成功すると、MainAcitivtyが起動し、サービスコールが起動します。



結果はどうなりますか...実装に関する批判をもらい、苦情や提案などを収集したいです。 一緒にカットしたい人-ようこそ。



PS著者はYandexとYandex.Moneyとは何の関係もありません。

キーが並べられた状態で編集すると、アプリケーションは起動しません。 代替リダイレクトアドレスを使用してアプリケーションを登録し、識別子を取得します。



All Articles