Android端末におけるHUAWEI IDログイン機能の詳細実装手順２－実装準備

# HMS Account Kitの利用準備
HMS Account Kitを利用するのに、Android SDKとREST APIを問わず、まずAppGallery ConnectでAccount Kitのサービスを開通しておく必要があります。開通手順については“[HMS Account Kit実装入門](https://qiita.com/Rei_2020/items/81001ffc6299e56401c8)”をご参照ください。

ここで気を付けなければならないのは、リダイレクトURIを設定することです。
このURIはREST APIを利用するのに必要なので、必ず設定しなければなりません。ただ、必ずしも実在しているURIじゃなくてもよいです。

<img width="600" alt="スクリーンショット 2020-10-01 233255" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/db817e4a-a3f3-5b6b-bf41-25e3b8322b30.png">

# ライブラリ

```gradle:build.gradle
dependencies {
    // HMS Account KitのAndroid SDKを使う場合のライブラリ
    implementation 'com.huawei.agconnect:agconnect-core:1.5.0.300'
    implementation 'com.huawei.hms:hwid:5.2.0.300'

    // HMS Account KitのREST APIを使う場合、JWTのトークンをデコードする必要があるため、そのためのライブラリを入れます
    implementation 'com.auth0.android:jwtdecode:2.0.0'
}
```

<b>HMS Account KitのAndroid SDKを使う場合</b>
必要なライブラリが2つあります。
com.huawei.agconnect:agconnect-coreはAppGallery Connectのライブラリです。
com.huawei.hms:hwidはHMS Account KitのAndroidライブラリです。

<b>HMS Account KitのREST APIを使う場合</b>
HMS Account KitのREST APIを使う場合、ライブラリは不要ですが、APIが最終的に返すのはユーザーのプロフィール情報が入ったJWTのIDトークンです。それをデコードしないと、プロフィール情報が取れないので、[JWTDecode.Android](https://github.com/auth0/JWTDecode.Android)を導入することで、デコード作業の簡略化を図ります。

# レイアウト
ユーザーに明示的にログインしてもらうのに、ログインボタンを用意することが必要です。

<img width="300" alt="スクリーンショット 2020-10-01 233255" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/712652e7-7447-7d49-c2f4-592a986ddc6a.png">

HUAWEI IDのログインボタンのデザインにはガイドラインがあり、それに沿ったデザインをしなければならないのですが、HuaweiIdAuthButtonを使えば、常にガイドラインに沿ったボタンになるので、ぜひ使ってください。

詳しくは次のリンクをご参照ください。

[HMS Account Kitの利用時にHuaweiIdAuthButtonも合わせて使いましょう](HMS Account Kitの利用時にHuaweiIdAuthButtonも合わせて使いましょう)：https://qiita.com/Rei_2020/items/db1f11c950c3ddb30ad3

# シリーズ
- [Android端末におけるHUAWEI IDログイン機能の詳細実装手順１－ソリューションの概要](https://qiita.com/Rei_2020/items/e02814bd688a41ab8702)
- [Android端末におけるHUAWEI IDログイン機能の詳細実装手順２－実装準備](https://qiita.com/Rei_2020/items/2eb9dada38cdfc2729ef)
- [Android端末におけるHUAWEI IDログイン機能の詳細実装手順３－HMS判定](https://qiita.com/Rei_2020/items/285107103be525ce3f98)
- [Android端末におけるHUAWEI IDログイン機能の詳細実装手順４－HMS端末でログイン](https://qiita.com/Rei_2020/items/548781581caf3e2f4046)
- [Android端末におけるHUAWEI IDログイン機能の詳細実装手順５－HMS端末でログアウト](https://qiita.com/Rei_2020/items/cc214859b82f518a1cd7)
- [Android端末におけるHUAWEI IDログイン機能の詳細実装手順６－HMS端末で権限取り消し](https://qiita.com/Rei_2020/items/a04a5894d5e565db969d)
- [Android端末におけるHUAWEI IDログイン機能の詳細実装手順７－GMS端末でログイン１](https://qiita.com/Rei_2020/items/0a7172d22817a5ae110f)
- [Android端末におけるHUAWEI IDログイン機能の詳細実装手順８－GMS端末でログイン２](https://qiita.com/Rei_2020/items/c083a16ef016eecdd5ad)
- [Android端末におけるHUAWEI IDログイン機能の詳細実装手順９－GMS端末でログアウト](https://qiita.com/Rei_2020/items/c0c1f1a68bfd0216cdd3)
- [Android端末におけるHUAWEI IDログイン機能の詳細実装手順１０－GMS端末で権限取り消し](https://qiita.com/Rei_2020/items/2afd389ae123e0552cae)

# GitHub
* https://github.com/Rei2020GitHub/MyPublicProject/tree/master/AccountDemo(H%2BG)

# 参考
* HMS：https://developer.huawei.com/consumer/jp/
* HMS Account Kitの紹介：https://developer.huawei.com/consumer/jp/doc/overview/HMS
* HMS Account Kitのドキュメント：https://developer.huawei.com/consumer/jp/doc/development/HMSCore-Guides-V5/introduction-0000001050048870-V5
* Huawei Developers：https://forums.developer.huawei.com/forumPortal/en/home
* Facebook Huawei Developersグループ：https://www.facebook.com/Huaweidevs/