2
我試圖通過Google Plus登錄獲取授權碼,以便在服務器上使用它。 G +登錄工作,我登錄了設備,但是當我嘗試獲取令牌時,我收到了一條異常,其中包含超級有用的消息Unknown
。這是代碼:GoogleAuthException「Unknown」試圖獲取令牌
private class GoogleLoginTask extends AsyncTask<Void, Void, String> {
private static final String LOGIN_SCOPES =
"https://www.googleapis.com/auth/plus.login " +
"https://www.googleapis.com/auth/userinfo.email";
@Override
protected String doInBackground(Void[] params) {
String apiKey = getApplicationMetaData("google.client-id");
String scopes = "oauth2:server:client_id:" + apiKey
+ ":api_scope:" + LOGIN_SCOPES;
Bundle appActivities = new Bundle();
appActivities.putString(GoogleAuthUtil.KEY_REQUEST_VISIBLE_ACTIVITIES,
"http://schema.org/AddAction");
String code = null;
try {
code = GoogleAuthUtil.getToken(getBaseContext(),
getPlusClient().getAccountName(), scopes, appActivities);
} catch (IOException e) {
Toast.makeText(getBaseContext(), R.string.error_network, Toast.LENGTH_LONG).show();
} catch (UserRecoverableAuthException e) {
startActivityForResult(e.getIntent(), AUTH_CODE_REQUEST_CODE);
} catch (GoogleAuthException e) {
Log.e(TAG, "Google auth exception: ", e);
} catch (Exception e) {
throw new RuntimeException(e);
}
return code;
}
}
我已經採取了代碼直接從Developer Page。儘管文檔沒有闡明許多參數,但我認爲我的理解正確。
我已經三重檢查了apiKey
和getPlusClient().getAccountName()
的內容,它們是正確的。我確保應用程序和服務器位於API控制檯的同一個項目中。
不知道我還能做什麼錯。
不知道爲什麼我不能接受這是正確的答案,但AndroidManifest中錯誤的應用程序ID在檢索令牌時會導致「未知」異常。 –