我正在使用 Google+ Api 为用户创建新圈子。当我尝试 POST 请求时,我得到如下响应:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "Forbidden"
}
],
"code": 403,
"message": "Forbidden"
}
}
这是我尝试使用 Google 自己的 Google API 浏览器https://developers.google.com/+/domains/api/circles/insert执行相同请求时得到的相同响应,这对我来说似乎很奇怪。为什么我从谷歌自己的 api expolrer 收到禁止响应?这可能是他们的问题吗?
我正在使用 scribe OAuth 库和 yincrash Google2Api https://github.com/fernandezpablo85/scribe-java
https://gist.github.com/yincrash/2465453
请求是在 AsyncTask 中这样创建的
OAuthService service = new ServiceBuilder()
.provider(Google2API.class)
.apiKey(GOOGLE_CLIENT_ID)
.apiSecret(GOOGLE_CLIENT_KEY)
.callback(GOOGLE_CALLBACK)
.scope(SCOPE_WRITE)
.scope(SCOPE_ME)
.build();
String postUrl = "https://www.googleapis.com/plusDomains/v1/people/me/circles";
String requestBody = "{\n" +
" \"displayName\": \"Circle Name\",\n" +
" \"description\": \"Circle with people you added\"" +
"}";
Token accessToken = new Token(sharedPreferences.getString(PREF_GOOGLE_KEY, ""), "");
OAuthRequest request = new OAuthRequest(Verb.POST, postUrl);
request.addHeader("Content-Type", "application/json")
request.addPayload(requestBody);
service.signRequest(accessToken, request);
Response response = request.send();
登录效果很好,我保存了访问令牌。