gpt4 book ai didi

android - Token null 登录谷歌账号

转载 作者:可可西里 更新时间:2023-11-01 19:13:39 31 4
gpt4 key购买 nike

我正在按照谷歌的例子获取 token 但没有成功。总是获取 token 失败。这是 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(...);
if (requestCode == 9002) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);

handleSignInResult(result, data);

}

if (requestCode == 9002) {
// [START get_id_token]
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
Log.d(TAG, "onActivityResult:GET_TOKEN:success:" + result.getStatus().isSuccess());

if (result.isSuccess()) {
GoogleSignInAccount acct = result.getSignInAccount();
String idToken = acct.getIdToken();

// Show signed-in UI.
Log.d(TAG, "idToken:" + idToken);
Log.d(TAG, "\n ");

// TODO(user): send token to server and validate server-side
} else {
// Show signed-out UI.
Log.d(TAG, "idToken: fail");

}
// [END get_id_token]
}



}

private void handleSignInResult(GoogleSignInResult result, Intent data) {

getToken1(data);
getToken2(result);

String BOOKS_API_SCOPE = "https://www.googleapis.com/auth/books";
String GPLUS_SCOPE = "https://www.googleapis.com/auth/plus.login";
String mScopes = "oauth2:" + BOOKS_API_SCOPE + " " + GPLUS_SCOPE;

}


void getToken1(Intent data){

GoogleSignInResult a = Auth.GoogleSignInApi.getSignInResultFromIntent(data);

if (a.isSuccess()) {

Log.d(TAG, "TOKEN 1: " + a.getSignInAccount().getIdToken());
Log.d(TAG, "DISPLAY NAME 1: " +a.getSignInAccount().getDisplayName());
Log.d(TAG, "ID 1: " + a.getSignInAccount().getId()+"\n ");

}else{
Log.d(TAG, "ID 1: falhou"+"\n ");
}

}

void getToken2(GoogleSignInResult result){

if (result.isSuccess()) {

GoogleSignInAccount acct = result.getSignInAccount();

Log.d(TAG, "TOKEN 2: " + acct.getIdToken());
Log.d(TAG, "DISPLAY NAME 2: " + acct.getDisplayName());
Log.d(TAG, "ID 2: " + acct.getId()+"\n ");

}else{
Log.d(TAG, "ID 2: falhou"+"\n ");
}

}

我如何获得 token ?谁能帮帮我?

enter image description here

enter image description here

enter image description here

enter image description here

最佳答案

我只是偶然发现了类似的问题,我没有使用网络 OAuth 客户端,它使用 firebase 工作,我认为这个更简单的解决方案可能对某些人有帮助。

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();

不需要定义 default_web_client_id,它会像粘贴一样工作。它是由 google-services 插件生成的字符串。

关于android - Token null 登录谷歌账号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34685928/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com