JavaScript V3 API経由でBloggerにアクセスしようとしています。私の(公開)テストブログにアクセスしようとすると、すべてが正常に動作します。Google Blogger APIエラー400
私は同じコードを使用しますが、私の(私的な)テストブログにアクセスしようとするとエラーが発生します。
次は私のコードAPI_KEYとblog_idの2番目の要素は、私のプライベートなブログです
var client_id = ['WWWW', 'XXXX'];
var api_key = ['YYYY','ZZZZ'];
var discoveryDocs = ['https://www.googleapis.com/discovery/v1/apis/blogger/v3/rest'];
var scope = 'https://www.googleapis.com/auth/blogger.readonly';
var blog_id = ['BLOG0', 'BLOG1'];
var appendResults = function(results) {
$('#results').append(JSON.stringify(results, undefined, 2) + '<hr/>');
};
getBlogs = function(client, key, blog) {
gapi.client.init({
'apiKey': key,
'clientId': client,
'discoveryDocs': discoveryDocs,
'scope': scope
}).then(function() {
return gapi.client.blogger.posts.list({
'blogId': blog
});
}).then(function(d) {
return d;
}).then(function(response) {
appendResults(response);
}, function(reason) {
appendResults(reason);
});
};
gapi.load('client', function() {
for(i=0; i<api_key.length; i++) {
getBlogs(client_id[i], api_key[i], blog_id[i]);
}
});
です。
次は、私は、開発者コンソールのセットアップの資格をした私の応答
{
"result": {
"kind": "blogger#postList",
"items": [
{
"kind": "blogger#post",
"id": "XXXX",
"blog": {
"id": "XXXX"
},
"published": "XXXX",
"updated": "XXXX",
"etag": "\"XXXX\"",
"url": "http://XXXX/2017/03/blog-post.html",
"selfLink": "https://www.googleapis.com/blogger/v3/blogs/XXXX/posts/XXXX",
"title": "",
"content": "XXXX",
"author": {
"id": "XXXX",
"displayName": "XXXX",
"url": "https://www.blogger.com/profile/XXXX",
"image": {
"url": "XXXX"
}
},
"replies": {
"totalItems": "0",
"selfLink": "XXXX"
}
}
],
"etag": "\"XXXX\""
},
"body": "{\n \"kind\": \"blogger#postList\",\n \"items\": [\n {\n \"kind\": \"blogger#post\",\n \"id\": \"XXXX\",\n \"blog\": {\n \"id\": \"639440130428294175\"\n },\n \"published\": \"XXXX\",\n \"updated\": \"XXXX\",\n \"etag\": \"\\\"XXXX\\\"\",\n \"url\": \"http://XXXX/2017/03/blog-post.html\",\n \"selfLink\": \"https://www.googleapis.com/blogger/v3/blogs/XXXX/posts/XXXX\",\n \"title\": \"\",\n \"content\": \"XXXX\",\n \"author\": {\n \"id\": \"XXXX\",\n \"displayName\": \"XXXX\",\n \"url\": \"https://www.blogger.com/profile/XXXX\",\n \"image\": {\n \"url\": \"XXXX\"\n }\n },\n \"replies\": {\n \"totalItems\": \"0\",\n \"selfLink\": \"https://www.googleapis.com/blogger/v3/blogs/XXXX/posts/XXXX/comments\"\n }\n }\n ],\n \"etag\": \"\\\"XXXX\\\"\"\n}\n",
"headers": {
"date": "XXXX",
"content-encoding": "gzip",
"vary": "Origin, X-Origin",
"content-length": "576",
"pragma": "no-cache",
"server": "GSE",
"etag": "\"XXXX\"",
"content-type": "application/json; charset=UTF-8",
"cache-control": "no-cache, no-store, max-age=0, must-revalidate",
"expires": "XXXX"
},
"status": 200,
"statusText": null
}
と
{
"result": {
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "We're sorry, but the requested resource could not be found."
}
],
"code": 400,
"message": "We're sorry, but the requested resource could not be found."
}
},
"body": "{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"invalid\",\n \"message\": \"We're sorry, but the requested resource could not be found.\"\n }\n ],\n \"code\": 400,\n \"message\": \"We're sorry, but the requested resource could not be found.\"\n }\n}\n",
"headers": {
"date": "XXXX",
"content-encoding": "gzip",
"vary": "Origin, X-Origin",
"content-length": "160",
"server": "GSE",
"content-type": "application/json; charset=UTF-8",
"cache-control": "private, max-age=0",
"expires": "XXXX"
},
"status": 400,
"statusText": null
}
です。私はlocalhost:5000経由でこれにアクセスしています。これは、開発者用コンソールでlocalhostを有効なドメインとしてセットアップしました。私はそれが手掛かりかもしれないと思うことができ
唯一のことは、これは私の要求の原点が無効であることを私に言っかもしれないが、私は確かに言うことはできません
"result": {
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "We're sorry, but the requested resource could not be found."
}
],
"code": 400,
"message": "We're sorry, but the requested resource could not be found."
}
です。
私は同じ(プライベート)ブログを公開して再実行すると、このコードは両方のブログIDで動作します。
どこが間違っていますか?
を経由して、このAPIをテストすることができます。 https://developers.google.com/blogger/docs/3.0/reference/posts/list(記事が非公開のブログに投稿されている場合は認証が必要です)を参照してください。また、スコープは 'https:// www.googleapis.com/auth/blogger.readonly'から' https:// www.googleapis.com/auth/blogger'に変更する必要があります –