集成google登錄之前需要有一下兩點要求,只有具備一下兩點要求才能集成google登錄:
1,android?運行版本4.0及更新版本
2,android?設(shè)備支持谷歌服務(wù)
準(zhǔn)備工作
首先得在谷歌開發(fā)者后臺上面創(chuàng)建一個自己的項目,網(wǎng)址:https://console.developers.google.com,

點擊“Credentials”選擇“OAuth?Client?ID”創(chuàng)建一個名為LoginSimpleDemo的項目:

接下來如1所示,選擇“Android?Learn?More”:

上面會出來讓填寫name和SHA-1的地方,在這里如3所示獲取SHA-1的方法是用命令直接獲取,但是我的用命令獲取的時候會出現(xiàn)錯誤,錯誤如下所示:

其實還有另外一種方法獲取,就是在android?studio中獲取(如下圖):
1,選擇android如1
2,選中Gradle?Scripts
3,打開Gradle
4,點擊sync同步按鈕,同步一下
5,雙擊Tasks->android下面的signingReport
6,雙擊之后就會生成SHA-1,在下圖6處

把SHA-1值填上之后,點擊create:

之后Tab選擇“OAuth?agree?screen”,?之后填入你的郵箱還有project名稱,之后點擊“Save”(PS:Project中不能含有g(shù)oogle,否則會報錯):

在下面這個網(wǎng)址中下載google-services.json文件,網(wǎng)址:https://developers.google.com/identity/sign-in/android/start-integrating?authuser=0,?點擊?按鈕“GET?A?CONFIGURATION?FILE”,進入到獲取gson文件的頁面,

分別選中自己創(chuàng)建的app?name和package?name,?然后點擊下面的按鈕:

然后選中sign?in模塊,如下圖,之后點擊按鈕2:

就進入了下載google-services.json文件的頁面了,點擊下載即可,下載下來之后放到你的project下面的app的根目錄下面如下圖:

好了,準(zhǔn)備階段結(jié)束了,是不是感覺還是挺麻煩的,其實只要流程都看明白了,回過頭來梳理其實也沒那么麻煩,下面是真正的集成階段了,其實集成階段很簡單,因為代碼量很少;
集成
首先需創(chuàng)建一個GoogleApiClient對象:
private?GoogleApiClient?mGoogleApiClient;
之后初始化:
GoogleSignInOptions?gso?=?new?GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
????.requestId()
????.requestProfile()
????.requestEmail()
????.build();
mGoogleApiClient?=?new?GoogleApiClient.Builder(this)
????.enableAutoManage(this,?new?GoogleApiClient.OnConnectionFailedListener(){
????????@Override
????????public?void?onConnectionFailed(@NonNull?ConnectionResult?connectionResult)?{
????????}
????})
????.addApi(Auth.GOOGLE_SIGN_IN_API,?gso)
????.build();
之后就是登錄發(fā)起:
Intent?intent?=?Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(intent,?RC_SIGN_IN);??//RC_SIGN_IN是requestcode
在onActivityResult中攔獲取登錄的回調(diào):
GoogleSignInResult?result?=?Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
/**
*?Google?plus?登陸回調(diào)
*/
private?void?handleSignInResult(GoogleSignInResult?result)?{
????Log.i(TAG,?"handleSignInResult----"?+?result.isSuccess());
????if?(result.isSuccess())?{
????????GoogleSignInAccount?account?=?result.getSignInAccount();
????????Log.i(TAG,?"id--------"?+?account.getId()?+?"----name----"?+?account.getDisplayName()?+?"---photo--"?+?account.getPhotoUrl());
????}
}
在登錄回調(diào)中可以獲取用戶的google賬號的id,name,photourl等信息,至此整個登錄過程完成。
最后不要忘了加入網(wǎng)絡(luò)訪問的權(quán)限奧~
我寫博客有個習(xí)慣,就是把每一個步驟都盡量講的詳細,因為在我遇到谷歌登錄的時候,搜了一下博客,發(fā)現(xiàn)很多博客寫的都忽略了一些很重要的過程,比如google-services.json等,所以我就決定寫一篇比較詳細的介紹集成google登錄的文章,以方便初次接觸google官方一些東西的接入的習(xí)慣和方式,希望能夠帶給大家一些幫助。
好了,就寫到這吧,希望這篇文章對大家有所幫助。
如要轉(zhuǎn)載,請注明出處,謝謝!
歡迎關(guān)注我的博客園博客,地址是:
https://www.cnblogs.com/zhengjunfei/
同時歡迎大家關(guān)注我的簡書博客,地址是:
https:www.itdecent.cn/u/da06e00edefa
歡迎大家掃描關(guān)注我的微信公眾號,我會定期發(fā)布一些博客,分享一些知識點。
