Android SDKバージョン4および5をSDKバージョン6に移行ガイド
SDKの統合
6.0 以降、SDK は Android AAR maven パッケージとして Maven Central から入手可能です。SDK 6をインストールする際、以前のバージョンにあった@aar
というサフィックスを省略することができます。
app.moneytree.link:core
6.xから、link-kit
などの兄弟モジュールが独立してバージョン管理されるようになりました(以前はit
)。SDK 6.xからすべてのパッケージを含めると、次のようになります。
implementation("app.moneytree.link:core:6.2.1")
implementation("app.moneytree.link:link-kit:6.2.1")
⚠️最新版はリリースページをご参照ください。
SDKの要件
Link SDK 6 以上は、Android 6 以上が必要です。そのため、minSdk
を23以上にアップデートする必要があります。また、6.2.0から、ライブラリは androidx.browser:browser:1.4+
と androidx.core:core-ktx:1.7+
に依存しているので、 compileSdk
を31以上に設定する必要があります。
android {
compileSdk = 31 // Android SDK 6.2.0 からは、31以上に設定する必要があります。
defaultConfig {
targetSdk 31 // 推奨ですが、targetSdk >= minSdkであることが必要です。
minSdk 23
}
}
AndroidX
SDK 6では、AndroidXも必要になりました。
Googleの移行ガイドに従ってAndroidXへの移行をしてください。
AndroidXに対応していない依存関係がある場合は、rootのgradle.properties
で以下のフラグを有効にしてください。
android.useAndroidX=true
# The Android plugin uses the appropriate AndroidX library instead of a Support Library.
android.enableJetifier=true
com.android.support
のパッケージを、AndroidXにアップグレードする必要があります。
マニフェストの変更
SchemeHandlerActivity
の削除
SchemeHandlerActivity
の削除SDK v4.xでは、アプリケーションが情報を適切に処理するために、マニフェストにSchemeHandlerActivity
を含めることが必要でしたが、現在は、Moneytree LINK SDKによって処理されます。SDK v4.xからアップグレードする場合は、AndroidManifest.xml
に以下のような宣言がないかを確認し、削除してください。さもないと、このクラスがない旨の警告が表示されます。
- <activity android:name="com.getmoneytree.auth.SchemeHandlerActivity">
- <intent-filter>
- <action android:name="android.intent.action.VIEW"/>
- <category android:name="android.intent.category.DEFAULT"/>
- <category android:name="android.intent.category.BROWSABLE"/>
- <!-- FIXME: Replace with your value -->
- <data android:scheme="mtlinkxxxxx"/>
- </intent-filter>
- </activity>
SDK v6.0, v6.1 および TargetSDK 31
に関する最新情報。
TargetSDK 31
に関する最新情報。Google は SDK 31
をターゲットとするアプリケーションが AndroidManifest
上で activities を exported
として宣言することを要求しています。targetSDK = 31で、バージョン 6.1, 6.0 およびそれ以下の SDK を使用するアプリケーションは、コンパイルエラーを回避するために
AndroidManifest` に以下のエントリを追加する必要があります。
<activity
android:name="com.getmoneytree.auth.SchemeHandlerActivity"
android:exported="true" />
SDK v6.2 からは、上記のマニフェスト項目は不要になりました。
パスワードレスサインアップとログイン
v6で追加されたパスワードレスサインアップとログインの機能を使用する場合、アクティビティの1つにインテント・フィルタを追加する必要があります。パスワードレスサインアップとログインに関するドキュメントを参照してください。
MoneytreeLink
MoneytreeLink
MoneytreeLink
は、5.xと6.0の両方のリリースでは多くの要素が変更されています。MoneytreeLink
は、プロセスデスにも耐えられるようにするために、イベントがアプリに返される方法が変更されました。
ほとんどのコールバックは、OnLinkResult
リスナーを介してイベントとして返されるようになりました。イベントを登録できる場所は2つあります。
LinkResult
LinkResult
Authorized
- PKCE の場合は、ClientAccessToken が設定されます。
- CodeGrant認証の場合、tokenプロパティはNULLになります。
Event
- Vaultのクローズなど、SDKで重要なイベントが発生した際に通知するイベントプロパティが含まれています。
Error
- SDK内部で発生したエラー、またはMoneytreeやサードパーティサーバーから返されたエラーは、
moneytreeLinkException
プロパティが含まれています。
Init
Init
MoneytreeLink.init
は、SDKが発行するすべてのLinkResult
に渡されるコールバックを受け取れるようになりました。
MoneytreeLink.init(this, configuration, (result) -> {
// if (result instanceof LinkResult.[sub-type-here]) {
//
// }
});
addOnLinkResult
addOnLinkResult
addOnLinkResult(...)
は、SDKのリザルトイベントに対するリスナーを登録するために使用されます。Activity
やFragment
のonCreate
にイベントリスナーを登録することをお勧めします。SDKはLifecycleOwnerを使って自動的に登録解除のステップを実行するので、リスナーの登録を解除する必要はありません。
MoneytreeLinkExtensions
MoneytreeLinkExtensions
MoneytreeLinkExtensions
は、あらかじめ設定されたLinkResultListener
ラッパーのセットです。これらのユーティリティ関数は、addOnLinkResult
として、Activity
とFragment
のonCreate
関数で使用してください。
onLoggedOut
- SDKがログアウトフローを終了したときに呼び出されます。
onAuthorized
- PKCE を認証フローとして使用している場合、SDK が新規または更新された ClientAccessToken
を取得すると呼び出されます。Code Grantの場合は、SDKがユーザーとサーバーのリンクを完了し、ユーザーが接続されたときに呼び出されます(この場合、返されるトークンはNULLになります)。
onError
- エラーが発生したときに呼び出されます。
onEvent
- イベントが発生したときに呼び出されます。
MoneytreeLinkExtensions
は、JavaをサポートしたKotlin初のユーティリティクラスです。onAuthorized
の使用例は、KotlinとJavaで次のようになります。
linkClient.onAuthorized(this) { token ->
// do something with token
}
MoneytreeLinkExtensions.onAuthorized(linkClient, activity, (token) -> {
// do something with token
});
client()
client()
MoneytreeLink.client()
をMoneytreeLink.getInstance()
に置き換えたものです。
getToken
getToken
getToken
はAuthorization.OnCompletionListener
の代わりにアクティビティを受け取るようになりました。
MoneytreeLink.getInstance().getToken(
- new Authorization.OnCompletionListener() { }
+ activity
);
getTokenInfo
getTokenInfo
は6.0で追加され、トークンに関するメタデータ、特にscopes
とresourceServer
のみを含んでいます。
MoneytreeLink.getInstance().getTokenInfo(new OnTokenInfoCallback() {
@Override
public void onSuccess(TokenInfoResponse tokenInfoResponse) {
}
@Override
public void onError(LinkError linkError) {
}
})
この機能は、認証タイプが PKCE の場合のみサポートされます。
openVaultFrom
openVaultFrom
openVaultFrom
はopenVault
に名称変更されました。
- MoneytreeLink.getInstance().openVaultFrom()
+ MoneytreeLink.getInstance().openVault()
openVault
は、Authorization.OnCompletionListener
リスナーを受け入れないようになりました。Vault の終了やエラーなどのイベントは、OnLinkResult
を介して発行されます。
openVault
では、特定の Vault ページへのディープリンクが可能になりました。 VaultOpenServicesOptions
はオプションの引数で、ページへのディープリンクに必要なデータが含まれています。詳細については、「Vault を開く」を参照してください。
MoneytreeAuthOptions
MoneytreeAuthOptions
MoneytreeAuthOptions
はLinkAuthOptions
に置き換わりました。
LinkAuthOptions
は、2つのサブタイプに分割されます。
LinkAuthOptions.Authorize
- オプション引数としてユーザのメールアドレスと共にLinkAuthOptions.Authorize
を構築するとき、MoneytreeLink#authorize
によっての認証が要求されます
LinkAuthOptions.Onboarding
- オンボーディングは、ユーザのパスワードレスアカウントを作成するためにメールアドレスを必要とするので、MoneytreeLink#onboard
によってオンボーディングオプションが要求されます。
openSettingsFrom
openSettingsFrom
openSettingsFrom
はopenSettings
に名称変更されました。
openSettings
は、ユーザがログインしていない場合、オプションで電子メールを受け取るようになりました。ユーザーがログインすると、SDKはopenSettings
のフローを再開します。
registerDeviceTokenFrom
registerDeviceTokenFrom
registerDeviceTokenFrom
は
registerFcmToken
に改名されました。Activity
が不要になりました- 新しいオプションのリスナータイプ
com.getmoneytree.listener.Action
を取得します。
unregisterDeviceTokenFrom
unregisterDeviceTokenFrom
unregisterDeviceTokenFrom
は
unregisterFcmToken
に改名されました。Activity
が不要になりました- 新しいオプションのリスナータイプ
com.getmoneytree.listener.Action
を取得します。
setLogoutHandler
setLogoutHandler
setLogoutHandler
は削除されました。ログアウトイベントを登録するにはOnLinkResult
を使用してください。
ログアウトイベントを処理するためには、コールバックを登録します。
final MoneytreeLink linkClient = MoneytreeLink.getInstance();
MoneytreeLinkExtensions.onLoggedOut(MoneytreeLink, this, () -> {
// Logout success
});
// OR
linkClient.addOnLinkResult(this, result -> {
if (result instanceof LinkResult.Event && ((LinkResult.Event) result).getEvent() == LinkEvent.LoggedOut) {
// Logout success
}
});
また、init
を呼び出す際にログアウトイベントのリスナを設定することもできます。
MoneytreeLink.init(this, configuration, result -> {
if (result instanceof LinkResult.Event && ((LinkResult.Event) result).getEvent() == LinkEvent.LoggedOut) {
// Logout success
}
});
logoutFrom
logoutFrom
logoutFrom
はlogout
に名称変更されました。
オプション:一生通帳からLINK Kitへのアップグレード
Moneytree LINKのPFMプロダクト「一生通帳」をご利用の方は、V6にて最新のPFMプロダクト「LINK Kit」にアップグレードしてください。
一生通帳をご利用でない方は、この手順をスキップしてください。
SDK 4またはSDK 5の「一生通帳」からSDK 6の「LINK Kit」にアップグレードする場合、ゲストは「LINK Kit」が必要とする拡張許可スコープを再認可(同意画面)する必要があることに注意してください。再認証は必要ありません。
逆に、「スタンドアローン一生通帳」や「LINK Kit Express」の非SDK統合からSDK統合にアップグレードする場合、ゲストは再認可・再認証が必要となります。
Updated almost 2 years ago