gpt4 book ai didi

java - Android Drive API OAuth BAD_AUTHENTICATION

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:35 26 4
gpt4 key购买 nike

我在使用 Google Drive REST v3 android API 时遇到问题。 OAuth token 得到 BAD_AUTHENTICATION 结果。这是我正在使用的连接代码。还可以注意到 OAuth 同意屏幕没有显示,并且在短时间后,我得到 BAD_AUTHENTICATION 结果。我是否需要手动将刷新 token 传递给服务器或其他东西?

// Gather credentials
credential = GoogleAccountCredential.usingOAuth2(getApplicationContext(), Arrays.asList(SCOPES)).setBackOff(new ExponentialBackOff());
SharedPreferences settings = getSharedPreferences("Roblu", Context.MODE_PRIVATE);
String accountName = settings.getString("accountName", "");
credential.setSelectedAccountName(accountName);

// Start Google services
HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
service = new com.google.api.services.drive.Drive.Builder(transport, jsonFactory, credential).setApplicationName("Roblu").build();

结果代码如下:

08-15 14:11:27.621 4929-15182/? E/Auth: [GoogleAccountDataServiceImpl] getToken() -> BAD_AUTHENTICATION. Account: <ELLIDED:-238957088>, App: com.google.android.gms, Service: oauth2:https://www.googleapis.com/auth/games
dkq: Long live credential not available.
at dkr.a(:com.google.android.gms:3101)
at dje.a(:com.google.android.gms:397)
at djd.a(:com.google.android.gms:31369)
at djd.a(:com.google.android.gms:313)
at elb.a(:com.google.android.gms:1201)
at ela.a(:com.google.android.gms:530)
at ela.a(:com.google.android.gms:196)
at dfw.a(:com.google.android.gms:320)
at dfw.a(:com.google.android.gms:210)
at dgf.a(:com.google.android.gms:1498)
at dge.a(:com.google.android.gms:909)
at dge.e(:com.google.android.gms:523)
at dgd.a(:com.google.android.gms:37)
at dhm.getAuthToken(:com.google.android.gms:178)
at android.accounts.AbstractAccountAuthenticator$Transport.getAuthToken(AbstractAccountAuthenticator.java:214)
at android.accounts.IAccountAuthenticator$Stub.onTransact(IAccountAuthenticator.java:113)
at android.os.Binder.execTransact(Binder.java:453)

最佳答案

基于此thread ,您收到一个错误可能是因为用户的帐户同时附加到托管帐户和 Google 帐户,并且可能每个帐户都有不同的密码。身份验证服务器目前不能很好地处理这个问题。关注这个Connecting to Google Drive with Google APIs Client Library for Java教程。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
// Google Accounts using OAuth2
m_credential = GoogleAccountCredential.usingOAuth2(this, Collections.singleton(DriveScopes.DRIVE));

m_client = new com.google.api.services.drive.Drive.Builder(
m_transport, m_jsonFactory, m_credential).setApplicationName("AppName/1.0")
.build();
...
}

您还可以检查这些相关问题:

希望这对您有所帮助!

关于java - Android Drive API OAuth BAD_AUTHENTICATION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38961958/

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