android應用整合google登入

來源:互聯網
上載者:User

標籤:hand   handles   private   rip   type   intent   支援   工作   simple   

    整合google登入之前需要有一下兩點要求,只有具備一下兩點要求才能整合google登入:        1,android 運行版本4.0及更新版本        2,android 裝置支援Google服務    準備工作    首先得在Google開發人員後台上面建立一個自己的項目,網址: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登入的時候,搜了一下部落格,發現很多部落格寫的都忽略了一些很重要的過程,比如google-services.json等,所以我就決定寫一篇比較詳細的介紹整合google登入的文章,以方便初次接觸google官方一些東西的接入的習慣和方式,希望能夠帶給大家一些協助。          好了,就寫到這吧,希望這篇文章對大家有所協助。   如要轉載,請註明出處,謝謝!   歡迎關注我的部落格園部落格,地址是:   https://www.cnblogs.com/zhengjunfei/ 
 

  同時歡迎大家關注我的簡書部落格,地址是:

 

  https:www.jianshu.com/u/da06e00edefa

 

  歡迎大家掃描關注我的公眾號,我會定期發布一些部落格,分享一些知識點

   

 

android應用整合google登入

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.