gpt4 book ai didi

android - 无法在 Android 谷歌登录中从谷歌获取 token ID

转载 作者:行者123 更新时间:2023-11-29 15:44:52 24 4
gpt4 key购买 nike

我已经在谷歌控制台上将我的 android 应用程序签名为 api,并在谷歌控制台中将我的后端服务器签名为 oauth 客户端。
我还更新了我的 gradle 文件以及获得 token ID 所需的一切。
但不知何故,我总是无法从谷歌获得 token 。
我已经从谷歌控制台检查了我的包名和 ssh1 代码,并通过命令将它与我的调试 ssh1 匹配:keytool -list -v -keystore mydebudpath\debug.keystore

我要在这里提交我的 android 代码:

 @Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
validateServerClientID();
// [START configure_signin]
// Request only the user's ID token, which can be used to identify the
// user securely to your backend. This will contain the user's basic
// profile (name, profile picture URL, etc) so you should not need to
// make an additional call to personalize your application.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.server_client_id))
.requestServerAuthCode(getString(R.string.server_client_id), false)
.requestEmail()
.build();
// [END configure_signin]

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

}

和我的 onActivityResult:

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

if (requestCode == RC_GET_TOKEN) {
// [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);
updateUI(true);

// TODO(user): send token to server and validate server-side
} else {
// Show signed-out UI.
updateUI(false);
}
// [END get_id_token]
}
}

代码result.getStatus().isSuccess();总是返回false
另请注意,在上面的代码中,我的 R.string.server_client_id 是我在谷歌开发者控制台中创建的服务器的 client_id 作为网络应用程序 oauth2。
我从未在我的 android 身份验证代码中使用过我的 android api_key。我应该在哪里使用它?
我哪一部分做错了?

最佳答案

这是我的 list ,可能对你有用

  1. 确保使用正确的 sha1 生成正确的配置 Google Generate Configure
  2. 确保您的应用文件夹中的 google-services.json 正确
  3. 转到 Credentials page并确保您选择了正确的项目,它应该与您用于生成配置文件的项目相同
  4. 在凭据部分确保您的 OAuth 2.0 客户端 ID 类型是 Web 应用程序而不是 Android
  5. 检查 string.xml 中的 api key 是否与 Google Developer Console 中的匹配

如果一切都失败了,我建议您尝试基于 Google Developer Console 中的新项目创建一个新的 API key ,祝您好运!

有用信息:developers.google.com/identity/sign-in/android/start-integrating

关于android - 无法在 Android 谷歌登录中从谷歌获取 token ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34567292/

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