集成google登錄之前需要有一下兩點要求,只有具備一下兩點要求才能集成google登錄:
1,android 運行版本4.0及更新版本
2,android 設備支持谷歌服務
准備工作
點擊“Credentials”選擇“OAuth Client ID”創建一個名為LoginSimpleDemo的項目:
接下來如1所示,選擇“Android Learn More”:
上面會出來讓填寫name和SHA-1的地方,在這里如3所示獲取SHA-1的方法是用命令直接獲取,但是我的用命令獲取的時候會出現錯誤,錯誤如下所示:
其實還有另外一種方法獲取,就是在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中不能含有google,否則會報錯):
分別選中自己創建的app name和package name, 然后點擊下面的按鈕:
然后選中sign in模塊,如下圖,之后點擊按鈕2:
就進入了下載google-services.json文件的頁面了,點擊下載即可,下載下來之后放到你的project下面的app的根目錄下面如下圖:
好了,准備階段結束了,是不是感覺還是挺麻煩的,其實只要流程都看明白了,回過頭來梳理其實也沒那么麻煩,下面是真正的集成階段了,其實集成階段很簡單,因為代碼量很少;
集成
首先需創建一個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();
之后就是登錄發起:
Intent intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(intent, RC_SIGN_IN); //RC_SIGN_IN是requestcode
在onActivityResult中攔獲取登錄的回調:
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
在登錄回調中可以獲取用戶的google賬號的id,name,photourl等信息,至此整個登錄過程完成。
/**
* Google plus 登陸回調
*/
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());
}
}
最后不要忘了加入網絡訪問的權限奧~
我寫博客有個習慣,就是把每一個步驟都盡量講的詳細,因為在我遇到谷歌登錄的時候,搜了一下博客,發現很多博客寫的都忽略了一些很重要的過程,比如google-services.json等,所以我就決定寫一篇比較詳細的介紹集成google登錄的文章,以方便初次接觸google官方一些東西的接入的習慣和方式,希望能夠帶給大家一些幫助。
好了,就寫到這吧,希望這篇文章對大家有所幫助。
如要轉載,請注明出處,謝謝!
歡迎關注我的博客園博客,地址是: