之前有寫到利用Facebook來做登入的動作
這次來利用也是大部分的人都有的Google帳號
Google也可以不用用來登入
單純地取得使用者的資料也可以
Step 1:
到最高層級的build.gradle新增下面方法
allprojects {
repositories {
google()//新增這行
// If you're using a version of Gradle lower than 4.1, you must instead use:
//mavenentral()這行官方教學裡面沒有是我自己後來新增的,沒有這行我的project會有error
// maven {
// url 'https://maven.google.com'
// }
}
}
要看清楚你用的build的gradle等級是多少
可以從這行看
classpath 'com.android.tools.build:gradle:2.3.3'
我的是2.3.3所以剛剛上面我就要新增紅色字體的那些方法
Step 2:
到app層級的build.gradle裡面新增
dependencies {
compile 'com.google.android.gms:play-services-auth:15.0.1'//新增這行
}
Step 3:
選擇你想要利用哪個專案
看你要新增還是要利用你之前的專案
Step 4:
我從頭新增一個專案
你想要呈現什麼樣的名稱給使用者看
選擇了Android裝置後
到AndroidManifest.xml找出你的Package名稱
然後還要找出你的SHA-1
Step 5:
重頭戲來了!!!!!
每次要用到SHA-1這個東西我都要搞很久
結果今天到Youtube看到人家的教學影片
這方法超級快也不用找路徑不用安裝一堆東西
到Gradle然後找到signingReport
然後就可以看到Terminal裡看到了
是不是很快!!!!!!
我發現這個方法的時候我都要飛上天了
Step 6:
他會有一個文件要你下載
記得把他下載下來
放到app資料夾裡面就行了
Step 7:
接下來就是寫程式的部分了
到你需要利用Google登入的Activity
在onCreate新增
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
要記得要宣告
private GoogleSignInClient mGoogleSignInClient;
看你要利用Google提供的按鈕元件還是你要自己新增都可以
按下去的時候新增下面的就可以啟動利用google登入了
Intent signInIntent = mGoogleSignInClient.getSignInIntent(); startActivityForResult(signInIntent, RC_SIGN_IN); //RC_SIGN_IN為自己定義的int在onActivityResult才可以抓到是利用Google登入的
在onActivityResult新增
if (requestCode == RC_SIGN_IN) { // The Task returned from this call is always completed, no need to attach // a listener. Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data); handleSignInResult(task); }
最後新增這個fun
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) { try { GoogleSignInAccount account = completedTask.getResult(ApiException.class); // 取得使用者的資料,取得後再看你想要對這些資料做什麼用途 Log.d(TAG,"handleSignInResult getName:"+account.getDisplayName()); Log.d(TAG,"handleSignInResult getEmail:"+account.getEmail()); } catch (ApiException e) { // The ApiException status code indicates the detailed failure reason. // Please refer to the GoogleSignInStatusCodes class reference for more information. Log.w(TAG, "signInResult:failed code=" + e.getStatusCode()); } }
照著以上步驟就可以利用Google登入來取得使用者的資料了
留言列表