android應用集成google登錄


    集成google登錄之前需要有一下兩點要求,只有具備一下兩點要求才能集成google登錄:
        1,android 運行版本4.0及更新版本
        2,android 設備支持谷歌服務
    准備工作
    首先得在谷歌開發者后台上面創建一個自己的項目,網址: https://console.developers.google.com 
    
    
    點擊“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,否則會報錯):
    
    
    在下面這個網址中下載google-services.json文件,網址:  https://developers.google.com/identity/sign-in/android/start-integrating?authuser=0 , 點擊 按鈕“GET A CONFIGURATION FILE”,進入到獲取gson文件的頁面,
    
    
    分別選中自己創建的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官方一些東西的接入的習慣和方式,希望能夠帶給大家一些幫助。
    
      好了,就寫到這吧,希望這篇文章對大家有所幫助。
 
  如要轉載,請注明出處,謝謝!
 
  歡迎關注我的博客園博客,地址是:
 
 
 

  同時歡迎大家關注我的簡書博客,地址是:

 

  https:www.jianshu.com/u/da06e00edefa

 

  歡迎大家掃描關注我的微信公眾號,我會定期發布一些博客,分享一些知識點

 
  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM