Articles of google signin

Android Google登录:检查用户是否已登录

我正在寻找一种方法来检查我的用户是否已使用Google登录进行登录。 我支持几种日志API(Facebook,Google,自定义),所以我想构建一个静态帮助方法,如: User.isUserLoggedIn() 使用Facebook我使用: if AccessToken.getCurrentAccessToken() != null { return true } 检查用户是否通过Facebook登录。 在iOS上,我使用以下内容检查用户是否通过Google登录进行登录: GIDSignIn.sharedInstance().hasAuthInKeychain() 我的问题:iOS上的方法是否与Android方法相同: GIDSignIn.sharedInstance().hasAuthInKeychain() ? 我正在寻找一种不涉及回调的方法。 谢谢! 马克斯

使用带谷歌登录的Firebase身份validation时,退出时“GoogleApiClient尚未连接”

我正在使用Google登录使用Firebase身份validation,但我想从其他活动中退出,但是当我使用此方法注销时,该方法可以完全从同一个活动中运行,但不能与其他活动一起使用。 这是方法。 public void logOut() { mAuth.signOut(); // Google sign out Auth.GoogleSignInApi.signOut(googleApiClient).setResultCallback( new ResultCallback() { @Override public void onResult(@NonNull Status status) { authorizeUser(null); } }); } 但是当使这个方法静态并且googleApiClient静态时它仍然不起作用,并且当我仅执行时 FirebaseAuth.getInstance().signOut(); 我得到的错误就是这个(logcat) E/AndroidRuntime: FATAL EXCEPTION: main Process: com.igov, PID: 21316 java.lang.IllegalStateException: GoogleApiClient is not connected yet. at com.google.android.gms.internal.zzoe.zzd(Unknown Source) at com.google.android.gms.internal.zzoh.zzd(Unknown Source) at com.google.android.gms.internal.zzof.zzd(Unknown Source) at com.google.android.gms.auth.api.signin.internal.zzc.signOut(Unknown Source) […]

Google Firebase在发布版本变体和jks SHA中发布状态12501(无法正常工作)

我知道这个问题已被许多人提出并得到了回答。 那么,为什么我又要问这个问题呢? Cuz我尝试了这些解决方案,我确实关注了Google文档,然后是教程和youtube。 仍然没有运气。 Oright,这就是我在项目中所做的。 项目: GoogleSignIn dependencies { classpath ‘com.android.tools.build:gradle:2.2.0’ classpath ‘com.google.gms:google-services:3.0.0’ } Gradle(模块:app) apply plugin: ‘com.android.application’ android { signingConfigs { config { keyAlias ‘alias’ keyPassword ‘keypass’ storeFile file(‘/home/reoxey/path/to/jks’) storePassword ‘storepass’ } } compileSdkVersion 25 buildToolsVersion “25.0.0” defaultConfig { applicationId “reoxey.com.googlesignin” minSdkVersion 19 targetSdkVersion 25 versionCode 1 versionName “1.0” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” } buildTypes { […]

Google登录无法正常使用

我已经在我的Android应用程序中集成了google登录,现在问题是在某些设备中它无法正常工作,但在我的模拟器和某些设备中它工作正常,问题是什么? https://developers.google.com/identity/sign-in/android/ Android Login with Google Plus Account 这两个教程要登录,但当我运行我的应用程序,并尝试登录它允许选择帐户,但当我点击我的logcat中显示它,它显示 System.out: Google logout 码 private void handleSignInResult(GoogleSignInResult result) { Log.d(“”, “handleSignInResult:” + result.isSuccess()); if (result.isSuccess()) { // Signed in successfully, show authenticated UI. GoogleSignInAccount acct = result.getSignInAccount(); Log.e(“”, “display name: ” + acct.getDisplayName()); personName = acct.getDisplayName(); personPhotoUrl = String.valueOf(acct.getPhotoUrl()); ggoleemail = acct.getEmail(); googleid = “G” + […]

获取’E / TokenRequestor:您有与OAuth2相关的错误配置。 详细错误:INVALID_AUDIENCE’即使在提供准确的客户ID之后也是如此

我在我的应用中提供了GoogleSignIn选项。 这是我的代码: public class SignupActivity extends AppCompatActivity { private static final int RC_SIGN_IN = 1; GoogleApiClient mGoogleApiClient; FirebaseAuth mAuth; TextView appName; ProgressDialog signinProgressDialog; CoordinatorLayout coordinatorLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_signup); // Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); // setSupportActionBar(toolbar); signinProgressDialog = new ProgressDialog(SignupActivity.this); coordinatorLayout = (CoordinatorLayout) findViewById(R.id.signupCoordinatorLayout); // Configure Google Sign In GoogleSignInOptions […]

使用Google登录Android获取用户的出生日期和性别

我已将Google Sign-In集成到我的应用程序中。 我可以获得用户的Email和DisplayName 。 现在,我想获得用户的Birthdate和Gender 。 我已将所有必需的requests和Scopes添加到GoogleApiClient ,这些requests和Scopes均由API授予。 这是代码。 // [START configure_signin] // Configure sign-in to request the user’s ID, email address, and basic // profile. ID and basic profile are included in DEFAULT_SIGN_IN. GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .requestProfile() <- This .requestScopes( new Scope(Scopes.PLUS_ME), new Scope(Scopes.PROFILE) <- This ) .build(); // [END configure_signin] […]

GoogleSignInAccount getPhotoUrl()返回null

试图从登录的个人资料中获取照片。 但总是返回null。 姓名和电子邮件返回值,只有照片有问题。 GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestProfile() .requestEmail() .build(); mGoogleApiClient = new GoogleApiClient.Builder(StartActivity.this) .enableAutoManage(StartActivity.this, StartActivity.this) .addApi(Auth.GOOGLE_SIGN_IN_API, gso) .build(); acct = gResult.getSignInAccount(); String name = acct.getDisplayName(); //okay, value != null String email = acct.getEmail(); //okay, value != null Uri photoUri = acct.getPhotoUrl() //not okay, value == null 为什么会这样? 帐户已签名,电子邮件和姓名已获得,但照片始终失败。

将google-services.json提交给GitHub

我正在创建一个公共android项目,我正在使用Google登录服务。 我是根据本教程做的。 正如它所说,我有google-services.json文件。 我需要将上述文件提交给Github吗? 其他开发者(如果有人贡献)需要这个文件吗? 或者他们必须创建自己的? 顺便说一句,我正在使用Travis-CI。 此文件是否会影响CI构建?

Android:GoogleIdTokenVerifier.Builder中的transport和jsonFactory是什么?

在吹码中,什么是transport和jsonFactory ? (我不明白) https://developers.google.com/identity/sign-in/android/backend-auth#using-a-google-api-client-library import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken; import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken.Payload; import com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier; … GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport /**Here**/, jsonFactory /**Here**/) .setAudience(Arrays.asList(CLIENT_ID)) // If you retrieved the token on Android using the Play Services 8.3 API or newer, set // the issuer to “https://accounts.google.com”. Otherwise, set the issuer to // “accounts.google.com”. If you need to verify tokens […]

Android身份validation错误:“GetToken失败,状态代码为:INVALID_AUDIENCE”

关于这个模糊的错误代码已经有几个问题,但是没有人为我解决这个问题,所以我会再试一次。 首先,这是用于登录的样板代码。 GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .requestServerAuthCode(“web app client ID copied from Dev API Console”, false) .build(); mGoogleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this, this).addApi(Auth .GOOGLE_SIGN_IN_API, gso).build(); Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); startActivityForResult(signInIntent, RC_SIGN_IN); 使用此代码,我得到一个对话框,可以选择适当的用户帐户。 好极了! 但是,然后我在onActivityResult中获取了一个已取消的代码,因此我检查了logcat并注意了标题中的错误消息。 然后我搜索有这个问题的其他人,但是无法弄清楚我的问题是什么。 所以让我们从其他post中查看常见问题。 Firebase控制台显示我的应用程序已使用正确的SHA-1和SHA-256指纹进行了注册 发布和调试版本都使用相同的密钥库 在Google API管理器中,我的“OAuth许可屏幕”已配置完毕 我还validation了授权重定向URI的域名 我已经重新下载了Firebase GoogleServices.json文件,只是为了确定 没有包名称问题。 实际上,Firebase Analytics在这个应用程序中运行得很好 在Play商店开发控制台中,我的OAuth客户端显示在“设置 – > API访问”中 我的Firebase项目在Play商店开发控制台“关联帐户”设置部分中链接 我等了10个小时,只是为了看看Google的后端是否需要时间来设置它 对于可搜索性,在标题中的logcat错误消息之后,我得到以下logcat打印。 你有错误的OAuth2相关配置,请检查。 […]