Android接入谷歌登录

打印 上一主题 下一主题

主题 1009|帖子 1009|积分 3037

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  • 登录谷歌云后台:谷歌后台地址
  • 配置OAuth 2.0 客户端 ID,初始化谷歌登录客户端ID用这里的web客户端ID,同时需要配置Android的客户端ID(对应包名与SHA-1证书)

  • 在build.gradle中添加 google(),同时在dependencies依赖添加 
    1. implementation 'com.google.android.gms:play-services-auth:20.2.0'
    复制代码

  • 初始化谷歌登录,把第二步拷贝的客户端ID配置
    1.     // 初始化谷歌登录
    2.     private void initGoogleSignInClient() {
    3.         GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
    4.                 .requestIdToken("你的客户端ID")
    5.                 .requestEmail()
    6.                 .build();
    7.         // Build a GoogleSignInClient with the options specified by gso.
    8.         mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
    9.     }
    复制代码
  • cocos调用谷歌登录
    1.     /**
    2.      * google登录
    3.      */
    4.     public static void login() {
    5.         Log.d(TAG, "==>login");
    6.         // 使用GoogleSignIn.getLastSignedInAccount方法为当前登录的用户请求个人资料信息。
    7.         GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(getActivity().getApplicationContext());
    8.         // 不存在则请求登录
    9.         if (account == null) {
    10.             Intent signInIntent = mGoogleSignInClient.getSignInIntent();
    11.             getActivity().startActivityForResult(signInIntent, RC_SIGN_IN);
    12.         } else {
    13.             Log.d(TAG, "account != null " + account.toString());
    14.             onLoginResp(account);
    15.         }
    16.     }
    17.    
    复制代码
  • 处置惩罚登录数据返回
    1.     @Override
    2.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    3.         super.onActivityResult(requestCode, resultCode, data);
    4.         if( resultCode != RESULT_OK){
    5.             return;
    6.         }
    7.         if (requestCode == RC_SIGN_IN) {
    8.             Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
    9.             try {
    10.                 GoogleSignInAccount account = task.getResult(ApiException.class);
    11.                 if (account != null && !account.isExpired()) {
    12.                     Log.d(TAG, "onActivityResult != null" + account.toString());
    13.                     onLoginResp(account);
    14.                 } else {
    15.                     Log.w(TAG, "signInResult: null account or expired");
    16.                 }
    17.             } catch (ApiException e) {
    18.                 Log.w(TAG, "signInResult:failed code=" + e);
    19.                 e.printStackTrace();
    20.             }
    21.         }
    22.     }
    23.     // 获取谷歌登录回调
    24.     private static void onLoginResp(GoogleSignInAccount account) {
    25. //         Log.d(TAG, account.toString());
    26.         String token = account.getIdToken();
    27.         String userid = account.getId();
    28.         String nickname = account.getDisplayName();
    29.         String photo = account.getPhotoUrl().toString();
    30.     }
    复制代码

  • cocos调用谷歌登出
    1.     // 谷歌登出
    2.     public static void singOut(){
    3.         mGoogleSignInClient.signOut().addOnCompleteListener(getActivity(), new OnCompleteListener<Void>() {
    4.             @Override
    5.             public void onComplete(@NonNull Task<Void> task) {
    6.                 Log.d(TAG, "==>singOut");
    7.             }
    8.         });
    9.     }
    复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

篮之新喜

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表