gpt4 book ai didi

android - googleauthutil.gettoken 超时

转载 作者:搜寻专家 更新时间:2023-11-01 08:01:53 25 4
gpt4 key购买 nike

我有一个应用程序,我试图在其中获取谷歌身份验证 token 。它会在每次请求时超时,并且不会在 logcat 中提供任何有用的消息。我试图弄清楚我是否未能正确设置我的云控制台,或者我的代码是否有问题。

我的 token 请求类:

public class GetMyToken extends AsyncTask<String,Void,String>{

Context c;
String TAG = "wnycmap issues";

public GetMyToken(Context c) {
this.c=c;
}

@Override
protected String doInBackground(String...mEmail) {

String mScope = "oauth2:https://www.googleapis.com/auth/plus.me";
String email = mEmail[0];
System.out.println(c+email+mScope);

try {
return GoogleAuthUtil.getToken(c, email, mScope);

// System.out.println(token);
} catch (IOException transientEx) {
// Network or server error, try later
Log.e(TAG, transientEx.toString());

} catch (UserRecoverableAuthException e) {
// Recover (with e.getIntent())
Log.e(TAG, e.toString());
// Intent recover = e.getIntent();

//startActivityForResult(recover, REQUEST_CODE_TOKEN_AUTH);
} catch (GoogleAuthException authEx) {

Log.e(TAG, authEx.toString());




}
return "nope";



}

我调用它的方法:

private void authenticate() {

String accountEmail="asdf";
String token = "null";
AccountManager am = AccountManager.get(context);
Account[] accounts = am.getAccountsByType("com.google");

if (accounts != null){
Account account = accounts[0];
accountEmail = account.name;
System.out.println(context);
try {
token=new GetMyToken(getApplicationContext()).execute(accountEmail).get();

} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();

} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();

}

}
}

以及我的相关 list 设置

我会发布我的 logcat,但我得到的只是 println 告诉我我正在使用的上下文、电子邮件和范围,然后是一个错误告诉我我的 Activity 超时。我没有收到任何回复。感谢您的任何回复,我已经连续 5 天不间断地研究这个问题了,我已经无计可施了,试图解决这个问题。我知道它必须是简单的东西。我会采纳任何想法。

最佳答案

这不是一个完整的答案,但我无法对您的帖子发表评论,因为我必须首先拥有 50 个声望,而我没有。


我目前遇到了与 GoogleAuthUtil.getToken(...) 不同的问题。但是当我尝试你的执行任务的方法时,我遇到了一个超时问题,可能和你的一样。

为避免超时问题,您必须更改执行任务的行来自:

token=new GetMyToken(getApplicationContext()).execute(accountEmail).get();

收件人:

new GetMyToken(getApplicationContext()).execute(accountEmail);

无论您想用 token 做什么,都可以:

  • 在doInBackground方法中做
  • 或在 doInBackground 中调用另一个方法并将 token 传递给该方法。

doInBackground 在后台运行,您不应该挂起应用程序等待其响应。这样做可以防止超时问题,并让我回到我已经面临的问题。

关于android - googleauthutil.gettoken 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20101127/

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