2

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"
   }
}

私は持っている

4

1 に答える 1

0

https://developers.google.com/identity/protocols/OAuth2ForDevices#callinganapiによると、ヘッダーを次のように設定する必要があります

Authorization: Bearer <access_token>

それ以外の

Authorization: <access_token>
于 2015-06-10T02:55:02.840 に答える