[英]Google Drive Android API OAuth Authentication Problem - onActivityResult returns “0”
[英]Android Drive API OAuth BAD_AUTHENTICATION
我遇到了Google Drive REST v3 android API的問題。 OAuth令牌獲得BAD_AUTHENTICATION結果。 這是我正在使用的連接代碼。 還可以注意到OAuth同意屏幕沒有顯示,並且在很短的一段時間后,我得到了BAD_AUTHENTICATION結果。 我是否需要手動將刷新令牌傳遞給服務器或其他什么?
// 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)
基於此主題 ,您可能會收到錯誤,因為該用戶的帳戶已附加到托管帳戶和Google帳戶,並且可能每個帳戶都有不同的密碼。目前,身份驗證服務器無法很好地處理此問題。 使用Google API Client Library for Java教程關注此連接到Google雲端硬盤 。
@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();
...
}
您還可以查看以下相關問題:
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.