标签: googlesigninaccount

如何提交 PlayStore 应用访问凭据以进行 Google 登录身份验证

我有一个应用程序,用户需要使用谷歌帐户登录并购买高级版(播放计费)才能访问高级功能。一切都很完美。

最近,Playstore 强制开发人员提交应用程序凭据,以测试应用程序是否具有需要身份验证的某些功能。

在此输入图像描述

如果我的应用程序有一个正常的电子邮件和密码进行身份验证,那么我将从我的后端服务器向 google play 提交测试用户的电子邮件和密码。但现在是谷歌登录。我不知道任何使用应用程序审阅者的测试谷歌帐户。该文档没有任何相关信息。

在这种情况下,我是否必须提交我的个人 Google 帐户和密码来审核应用程序身份验证(因为它已添加到 GooglePlay 开发者控制台中的测试许可证中)?

或者有一些来自(Playstore 应用程序审阅者)的测试谷歌电子邮件帐户用于在我的服务器端列入白名单?

android google-play googlesigninaccount

24
推荐指数
2
解决办法
1万
查看次数

无声登录以使用GoogleApiClient检索令牌

我在我的应用中使用"Google登录".因此,我使用GoogleApiClient类来获取用户电子邮件和我后端所需的ID令牌.

当用户登录时,我可以访问一个Activity(当然),我使用该Activity让GoogleApiClient通过调用builder.enableAutoManage(myActivity,...)来处理UI生命周期内容.

这很好用.

但是,在稍后阶段(几天后),我需要获得一个新令牌(出于某种原因,我不会在这里进一步讨论).我想在没有用户交互的情况下静默获取此令牌.但是,在我需要这个新令牌的代码中,我无法访问任何Activity实例.这意味着我无法进行上述调用,即"builder.enableAutoManage".而且我发现,如果我不打那个电话,那么静默登录似乎不起作用.

我已附上以下代码.现在,看看"silentLogin"方法.只要我作为用户收到的令牌执行了实际登录,小于一小时,则语句"pendingResult.isDone"将返回true并且可以接收缓存的令牌.但是,如果我作为用户进行实际登录时收到的令牌超过一小时,那么就会调用"pendingResult.setResultCallback",但是"onResult"方法永远不会被调用,我无法获得新的令牌.如果我从一个活动做同样的事情(并且通过它也调用"builder.enableAutoManage"),就不会发生这个问题.

那么,有没有人知道我做错了什么,更重要的是 - 如何解决这个问题并获得一个新的令牌而无需访问活动实例?

我使用的是com.google.android.gms:play-services-auth:8.4.0

package com.google.samples.quickstart.signin;

import android.content.Context;
import android.os.Bundle;
import android.util.Log;

import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.Scopes;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.OptionalPendingResult;
import com.google.android.gms.common.api.ResultCallback;
import com.google.android.gms.common.api.Scope;

/**
 * Use this class to login with google account using the OpenId oauth method.
 */
public class GoogleLoginStackOverflow {
    private static final String TAG = GoogleLoginIdToken.class.getName();
    private static final String SERVER_CLIENT_ID = "XXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com";

    private GoogleApiClient mGoogleApiClient;
    private Context mContext;

    private GoogleLoginStackOverflow(Context appContext) …
Run Code Online (Sandbox Code Playgroud)

android google-authentication google-signin googlesigninaccount

20
推荐指数
2
解决办法
9535
查看次数

最新PlayServices 8.3中的GoogleSignInAccount内部崩溃

有关游戏服务(8.3)的最新版本存在与GoogleSignInAccount相关的问题.

我们收到了它产生的崩溃.这是堆栈跟踪.

Android: 4.4.4
Manufacturer: Sony
Model: D5503
Date: Thu Nov 12 16:36:06 GMT-08:00 2015

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=40962, result=-1, data=Intent { (has extras) }} to activity {com.spreaker.android/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}: java.lang.NullPointerException
    at android.app.ActivityThread.deliverResults(ActivityThread.java:3455)
    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3498)
    at android.app.ActivityThread.access$1300(ActivityThread.java:144)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:212)
    at android.app.ActivityThread.main(ActivityThread.java:5135)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
    at java.util.Collections.sort(Collections.java:1882)
    at com.google.android.gms.auth.api.signin.GoogleSignInAccount.zzms(Unknown Source)
    at com.google.android.gms.auth.api.signin.GoogleSignInAccount.zzmx(Unknown Source)
    at com.google.android.gms.auth.api.signin.internal.zzn.zza(Unknown Source)
    at com.google.android.gms.auth.api.signin.internal.zzn.zzb(Unknown Source)
    at com.google.android.gms.auth.api.signin.internal.SignInHubActivity.zza(Unknown Source)
    at com.google.android.gms.auth.api.signin.internal.SignInHubActivity.onActivityResult(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

android google-play-services google-signin googlesigninaccount

16
推荐指数
0
解决办法
1352
查看次数

Token null登录Google帐户

我按照谷歌的例子来获取令牌但没有成功.总是无法获得令牌.这是Google在您的网页上显示的最新方式开发人员我认为该错误不在我的代码中

  private String CLIENTE_ID = "...apps.googleusercontent.com";



GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(CLIENTE_ID)
            .requestEmail()
            .build();

// Build GoogleAPIClient with the Google Sign-In API and the above options.
mGoogleApiClient = new GoogleApiClient.Builder(this)
            .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();

imgBGoogle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

            Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
            startActivityForResult(signInIntent, 9002);
        }
});



@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...); …
Run Code Online (Sandbox Code Playgroud)

android google-signin googlesigninaccount

13
推荐指数
2
解决办法
2万
查看次数

PlatformException (PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 12500: , null))

将要崩溃的行:

GoogleSignInAccount googleUser = await _googleSignIn.signIn();
Run Code Online (Sandbox Code Playgroud)

我试过什么:

  1. 我用这个命令生成了我的 SH1 密钥 keytool -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore
  2. 将 SH1 加密添加到 console.firebase.google.com
  3. 重新下载 google-service.json
  4. 复制debug.keystore.androidMyProject/android
  5. 在调试和发布中运行
  6. 添加到android/build.gradle这些行中:

    • 类路径 'com.android.tools.build:gradle:3.2.1'
    • 类路径 'com.google.gms:google-services:4.2.0'
  7. 添加到android/app/build.gradle这一行:

    • 依赖下的实现 'com.google.firebase:firebase-core:16.0.9'
    • 应用插件:文件末尾的“com.google.gms.google-services”
  8. release-signing.properties在我的项目文件夹下创建一个文件,其中包含这些行。
    • storeFile=debug.keystore
    • keyAlias=androiddebugkey
    • 商店密码=安卓
    • 密钥密码=安卓

另外,我已经在所有 StackOverflow问题中搜索了我能找到的这个问题,但没有一个对我有用。

我的 pubspec.yaml:

firebase_core: ^0.4.0+1
firebase_analytics: ^3.0.1

cloud_firestore: ^0.11.0+2

firebase_auth: ^0.11.1
google_sign_in: ^4.0.1+3

rxdart: ^0.22.0
Run Code Online (Sandbox Code Playgroud)

认证类:

class AuthService {
  final GoogleSignIn …
Run Code Online (Sandbox Code Playgroud)

dart google-signin flutter googlesigninaccount googlesigninapi

12
推荐指数
5
解决办法
1万
查看次数

Android:GoogleAuthUtil.getToken - 应该来自哪个帐户对象?

GoogleAuthUtil.getToken要求它的第二个参数是帐户对象,但是当您使用Google SignIn连接时,结果中的结果是GoogleSignInAccount - 这不是一回事.有没有办法将GoogleSignInAccount转换为Account对象?

 private void handleSignInResult(GoogleSignInResult result) {

        if (result.isSuccess()) {

            googleSignInAccount = result.getSignInAccount();

        }
    }
Run Code Online (Sandbox Code Playgroud)

然后:

authToken = GoogleAuthUtil.getToken(context, [need an account here], scope);
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过显示accountpicker来获取电子邮件地址,我也可以从google登录结果中获取电子邮件地址 - 但我看不到获取整个帐户对象的方法.

android google-authentication google-signin googlesigninaccount oauth2

10
推荐指数
1
解决办法
2024
查看次数

Google登录Storagerelay URI不允许用于' NATIVE' 客户类型

按照本教程,我一直在尝试这个简单的谷歌登录:

代码非常简单,我正在按照这些教程中给出的相同步骤进行操作,但最终出现了以下错误.


400. That’s an error.

Error: invalid_request

Storagerelay URI is not allowed for 'NATIVE' client type
Run Code Online (Sandbox Code Playgroud)

'NATIVE'不允许使用Storagerelay URI

在我的凭据中,我有如下配置:

凭证配置

我的代码如下:

<meta name="google-signin-client_id" content="377345478968-2opk94iompa38gja0stu1vi821lr3rt0.apps.googleusercontent.com">
<script src="https://apis.google.com/js/client:platform.js?onload=renderButton" async defer></script>

<div id="gSignIn"></div>


function onSuccess(googleUser) {
    var profile = googleUser.getBasicProfile();
    gapi.client.load('plus', 'v2', function () {
        var request = gapi.client.plus.people.get({
            'userId': 'me'
        });
        //Display the user details
        request.execute(function (resp) {
            console.log(resp);
        });
    });
}
function onFailure(error) {
    alert(error);
}
function renderButton() {
    gapi.signin2.render('gSignIn', {
        'scope': 'profile email',
        'width': 240,
        'height': 50,
        'longtitle': true,
        'theme': …
Run Code Online (Sandbox Code Playgroud)

javascript google-signin googlesigninaccount

10
推荐指数
1
解决办法
6445
查看次数

在弹出窗口中打开Goog​​le SignIn用户身份验证,需要使用OAuth 2.0在同一个Tab中打开

我正在使用OAuth 2.0 for google SingIn,它正在打开一个用户身份验证的弹出窗口,但我想在同一个标​​签中打开,请帮助我.提前致谢.

google-api google-authentication google-signin googlesigninaccount googlesigninapi

6
推荐指数
1
解决办法
2994
查看次数

谷歌登录错误状态{statusCode = DEVELOPER_ERROR,resolution = null}来自同一个游戏商店应用程序而不是来自同一个签名的apk

我认为这是android,android studio或google中的一个错误.我可以通过签名的apk登录谷歌.但如果我在Play商店上传相同的apk,它就会说Status{statusCode=DEVELOPER_ERROR, resolution=null}.

我想知道我怎么可能无法从Play商店下载的应用程序登录,并且当我使用我上传到Play商店的PC上的相同apk时我能够登录.

这不应该是DEVELOPER_ERROR,这应该是ANDROID_ERROR,GOOGLE_ERROR或HOW_TO_IRRITATE_DEVELOPER_BY_ANDROID.

有关如何解决这个ANDROID_ERROR的任何建议他们说是DEVELOPER_ERROR.

android google-login googlesigninaccount

6
推荐指数
1
解决办法
4503
查看次数

com.google.android.gms.common.api.ApiException:16:

我试着学习如何在我的Android应用程序中使用谷歌登录,但我抓住com.google.android.gms.common.api.ApiException:16 我找不到stackoveflow的答案,它是什么,为什么我抓住它.在我阅读的文档中,它"被用户取消",但我的谷歌帐户被接受安装应用程序

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import com.google.android.gms.auth.api.signin.GoogleSignIn
import com.google.android.gms.auth.api.signin.GoogleSignInOptions
import com.google.android.gms.auth.api.signin.GoogleSignInAccount
import android.content.Intent
import com.google.android.gms.tasks.Task
import com.google.android.gms.common.api.ApiException

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestEmail()
                .build()

        val mGoogleSignInClient = GoogleSignIn.getClient(this, gso)
        val account = GoogleSignIn.getLastSignedInAccount(this)
        if(account != null){
            Log.e("!!!", account.email)
        } else {
            val signInIntent = mGoogleSignInClient.signInIntent
            startActivityForResult(signInIntent, 0)
        }
    }

    public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)

        // Result returned …
Run Code Online (Sandbox Code Playgroud)

android google-signin googlesigninaccount

6
推荐指数
1
解决办法
6580
查看次数