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を使用して同じリクエストを実行しようとしたときに得られるのと同じ応答ですが、私には奇妙に思えます。Google 独自の API エクスプローラーから禁止された応答が返されるのはなぜですか? これは彼らの側で何か問題があるのでしょうか?
yincrash Google2Api https://github.com/fernandezpablo85/scribe-javaと一緒に scribe OAuth ライブラリを使用してい ます
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();
ログインしても問題なく動作し、アクセストークンが保存されています。