前言
本文主要簡述Google登錄以及Android接入時遇到的一些問題读存,并且給出對應(yīng)的解決辦法。在接入Google 登錄之前医舆,官方給出了一個Demo炕柔,你可以按照它給的Demo,Demo里面提供了使用流程购撼,包括配置Google API項(xiàng)目跪削,獲取Sha-1證書,以及獲取client-Id等迂求,這邊就不做詳細(xì)介紹碾盐。Demo鏈接:Google SignIn 官方 Demo
先決條件
獲取當(dāng)前項(xiàng)目的SHA-1
在 console.developers.google 上創(chuàng)建好項(xiàng)目
在 console.firebase.google 上創(chuàng)建好項(xiàng)目
準(zhǔn)備一部支付Google 服務(wù)的手機(jī)(Google 服務(wù)三件套)
注:Developers和Firebase上必須是同一個賬號
流程圖
引入Google Apk
在項(xiàng)目級下Build.grade中添加
allprojects {
repositories {
google()
}
}
然后,在應(yīng)用級下 Build.grade中添加
apply plugin: 'com.android.application'
...
dependencies {
implementation 'com.google.android.gms:play-services-auth:19.0.0'
}
配置API項(xiàng)目
配置的時候揩局,特別要注意一下你的配置賬號必須和你的Google developers的賬號是同一個賬號毫玖,不是同一個賬號,即便你后面都接好了凌盯,你也會發(fā)現(xiàn)Google api會給你報error 10 的配置錯誤付枫。
Google 官方文檔意思呢,就是配置錯誤驰怎,沒了阐滩,就這樣?县忌?掂榔?
配置API項(xiàng)目
- 從官方文檔進(jìn)入配置API和自己單獨(dú)進(jìn)入配置API,基本都差不多症杏。個人推薦從官方文檔頁面進(jìn)入配置装获,接下來,就講解一下Google SignIn 配置API項(xiàng)目
- 從Google SignIn 官方文檔 內(nèi)找到“configure a Project”
2.選擇一個已有的項(xiàng)目(沒創(chuàng)建過厉颤,可以通過+進(jìn)行創(chuàng)建)
3.Google SignIn官方文檔 提示需要Web應(yīng)用穴豫,但我們這邊選擇Android,至于為什么呢逼友?我們接著往下走精肃。
4.填寫一下對應(yīng)的包名以及SHA-1潘鲫,不知道SHA-1是在哪里獲取,彈框上也有獲取SHA-1證書的方法(keytool -keystore.....)
注:Google Play Console 如果是已經(jīng)打開應(yīng)用簽名(畢竟坑的一個東西肋杖,開了就沒辦法關(guān)閉了)溉仑,SHA-1先填寫“應(yīng)用簽名密鑰證書”里面的SHA-1,然后再填寫一遍“上傳密鑰證書”状植,必須2個都要配置W蔷埂!必須2個都要配置配置=蚧振定!必須2個都要都要配置!肉拓!(重要事情說3遍)
5.配置完成后后频,它會自動生成Client Id,把Client Id保存下來暖途,就是以后Google SignIn需要的IdToken卑惜。這時候我們打開console.developers.google 會發(fā)現(xiàn),里面已經(jīng)會生成好Web應(yīng)用等多個Id驻售,Web應(yīng)用的Id和剛剛保存Client Id是同一個Id露久。
注:使用上傳證書和應(yīng)用簽名,配置成功后欺栗,Client Id不變毫痕!
注:The request failed because one of the field of the resource is invalid:SHA-1或者包名填寫錯了,也可能是SHA-1有空格迟几,可是將SHA-1最后一個字母刪除消请,手動輸入。 若操作失誤类腮,將OAuth刪除了也會報資源無效的錯誤臊泰,主要把SHA-1最后幾個字母手動輸入即可。
配置Firebase項(xiàng)目
配置完了存哲,如果集成了Firebase因宇,firebase里面需要再重新配置一下七婴。
注:這一步不配置的祟偷,只配置了console.developers.google,運(yùn)行結(jié)果將會報ApiException:10的錯誤打厘!
1.從下方鏈接進(jìn)入修肠,登錄同console.devlepoers.google 相同的賬號的
2.找到Android,點(diǎn)擊旁邊的齒輪户盯,進(jìn)入設(shè)置頁面
3.將Google Play Console 內(nèi)的應(yīng)用簽名下的“應(yīng)用簽名密鑰證書”和“上傳密鑰證書”的SHA-1添加到里面嵌施,最后重新下載google-service.json饲化,更新項(xiàng)目里的json。
總結(jié)
到這一步吗伤,就已經(jīng)配置完成了吃靠,最后將console.developers.google 里的Web client (Auto-created for Google Sign-in)的Id(即IdToken)保存下來。這邊需要測試應(yīng)用的足淆,需要將應(yīng)用上傳到內(nèi)部測試才可以測試巢块。