集成google登錄之前需要有一下兩點(diǎn)要求片择,只有具備一下兩點(diǎn)要求才能集成google登錄:
1,android?運(yùn)行版本4.0及更新版本
2讹语,android?設(shè)備支持谷歌服務(wù)
準(zhǔn)備工作
首先得在谷歌開發(fā)者后臺(tái)上面創(chuàng)建一個(gè)自己的項(xiàng)目近范,網(wǎng)址:https://console.developers.google.com,
點(diǎn)擊“Credentials”選擇“OAuth?Client?ID”創(chuàng)建一個(gè)名為L(zhǎng)oginSimpleDemo的項(xiàng)目:
接下來(lái)如1所示铅匹,選擇“Android?Learn?More”:
上面會(huì)出來(lái)讓填寫name和SHA-1的地方,在這里如3所示獲取SHA-1的方法是用命令直接獲取,但是我的用命令獲取的時(shí)候會(huì)出現(xiàn)錯(cuò)誤饺藤,錯(cuò)誤如下所示:
其實(shí)還有另外一種方法獲取包斑,就是在android?studio中獲取(如下圖):
1,選擇android如1
2涕俗,選中Gradle?Scripts
3罗丰,打開Gradle
4踱承,點(diǎn)擊sync同步按鈕啄枕,同步一下
5,雙擊Tasks->android下面的signingReport
6舔稀,雙擊之后就會(huì)生成SHA-1元镀,在下圖6處
把SHA-1值填上之后绍填,點(diǎn)擊create:
之后Tab選擇“OAuth?agree?screen”,?之后填入你的郵箱還有project名稱凹联,之后點(diǎn)擊“Save”(PS:Project中不能含有g(shù)oogle沐兰,否則會(huì)報(bào)錯(cuò)):
在下面這個(gè)網(wǎng)址中下載google-services.json文件哆档,網(wǎng)址:https://developers.google.com/identity/sign-in/android/start-integrating?authuser=0蔽挠,?點(diǎn)擊?按鈕“GET?A?CONFIGURATION?FILE”,進(jìn)入到獲取gson文件的頁(yè)面瓜浸,
分別選中自己創(chuàng)建的app?name和package?name澳淑,?然后點(diǎn)擊下面的按鈕:
然后選中sign?in模塊,如下圖插佛,之后點(diǎn)擊按鈕2:
就進(jìn)入了下載google-services.json文件的頁(yè)面了杠巡,點(diǎn)擊下載即可,下載下來(lái)之后放到你的project下面的app的根目錄下面如下圖:
好了雇寇,準(zhǔn)備階段結(jié)束了氢拥,是不是感覺還是挺麻煩的,其實(shí)只要流程都看明白了锨侯,回過(guò)頭來(lái)梳理其實(shí)也沒那么麻煩嫩海,下面是真正的集成階段了,其實(shí)集成階段很簡(jiǎn)單囚痴,因?yàn)榇a量很少叁怪;
集成
首先需創(chuàng)建一個(gè)GoogleApiClient對(duì)象:
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賬號(hào)的id,name深滚,photourl等信息奕谭,至此整個(gè)登錄過(guò)程完成涣觉。
最后不要忘了加入網(wǎng)絡(luò)訪問(wèn)的權(quán)限奧~
我寫博客有個(gè)習(xí)慣,就是把每一個(gè)步驟都盡量講的詳細(xì)血柳,因?yàn)樵谖矣龅焦雀璧卿浀臅r(shí)候官册,搜了一下博客,發(fā)現(xiàn)很多博客寫的都忽略了一些很重要的過(guò)程难捌,比如google-services.json等攀隔,所以我就決定寫一篇比較詳細(xì)的介紹集成google登錄的文章,以方便初次接觸google官方一些東西的接入的習(xí)慣和方式栖榨,希望能夠帶給大家一些幫助昆汹。
好了,就寫到這吧婴栽,希望這篇文章對(duì)大家有所幫助满粗。
如要轉(zhuǎn)載,請(qǐng)注明出處愚争,謝謝映皆!
歡迎關(guān)注我的博客園博客,地址是:
https://www.cnblogs.com/zhengjunfei/
同時(shí)歡迎大家關(guān)注我的簡(jiǎn)書博客轰枝,地址是:
https:www.reibang.com/u/da06e00edefa
歡迎大家掃描關(guān)注我的微信公眾號(hào)捅彻,我會(huì)定期發(fā)布一些博客,分享一些知識(shí)點(diǎn)鞍陨。