Android の API 経由で goo.gl URLShortener にアクセスしようとしています。AccountManager を使用してアクセス トークンを生成しています。
String authTokenType = "oauth2:https://www.googleapis.com/auth/urlshortener";
String authToken = this.prefs.getString(Key.PREF_GOOGLE_ACCESS_TOKEN, "null");
if (!"null".equals(authToken)) {
accountManager.invalidateAuthToken(authTokenType, authToken);
}
//(...)
accountManager.getAuthToken(account, authTokenType, false, new GetAuthTokenCallback(), null);
生成された認証トークンを使用して HTTP リクエストを実行しGetAuthTokenCallback
て URL 履歴を受け取ると、次のステータスが表示されます401:unauthorized
。
HttpGet http_get = new HttpGet("https://www.googleapis.com/urlshortener/v1/url/history");
http_get.addHeader("Authorization", tokens[0]);
HttpResponse response;
response = GoogleOAuthOnPreferenceChangeListener.this.http_client.execute(http_get);
Log.d("tag", "Status: (" + response.getStatusLine().getStatusCode() + ") " + response.getStatusLine().getReasonPhrase());
JSON 応答の内容は次のとおりです。
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
私は持っている