Ошибка 404 при запросе комментариев через Google Blogger API

У меня есть сценарий, помогающий управлять сайтом Google Blogger, и он работает чуть больше года без каких-либо проблем.

Пару недель назад скрипт перестал работать должным образом, вместо этого возвращая ошибку «404 Not Found» при запросе списка комментариев к сообщению в блоге.

ERROR: <HttpError 404 when requesting https://www.googleapis.com/blogger/v3/blogs/<RedactedBlogId>/posts/<RedactedPostId>/comments?status=live&alt=json&maxResults=200 returned "Not Found">

Я также пробовал ресурс "listByBlog"

ERROR: <HttpError 404 when requesting https://www.googleapis.com/blogger/v3/blogs/<RedactedBlogId>/comments?status=live&alt=json&maxResults=200 returned "Not Found">

По сравнению с Попробовать этот API

Что немного странно, так это то, что когда я использую "Попробуйте этот API" с теми же blogId и postId я получаю ожидаемый ответ.... ЕСЛИ я также префикс postId с косой чертой, т. е. /<RedactedPostId> без префикса косой черты, я получаю пустой результат. Я обнаружил это случайно, когда скопировал/вставил файл postId. Если я проверю вкладку сети в devtools, запрошенный URL-адрес (при получении правильного ответа) будет https://content.googleapis.com/blogger/v3/blogs/<RedactedBlogId>/posts/%2F<RedactedPostId>/comments?key=<RedactedKey>

Единственным существенным отличием (помимо действительно странного префикса-требования...) является доменное имя.

Клиентская библиотека Python

Используя клиентскую библиотеку Python версии 1.6.5, мой скрипт работает нормально, вплоть до эта точка. Я могу запросить информацию о блоге и список сообщений. Поэтому я исключил проблемы с аутентификацией/авторизацией.

Выводы

  1. Я не считаю, что авторизация является проблемой, поскольку другие ресурсы работают
  2. Я не делал никаких изменений в своем скрипте... он просто перестал работать в один прекрасный день
  3. обновление до последней версии клиентской библиотеки python не помогло
  4. тот факт, что я должен ставить префикс /, когда «пробую» API на сайте документации, предполагает, что с ресурсом API что-то не так...
  5. Префикс postId с / в моем скрипте Python не решает проблему
  6. Просто чтобы внести ясность, blogId и postId ЯВЛЯЮТСЯ правильными, я проверил дважды, трижды, четыре раза и скопировал одни и те же значения в «Попробуйте этот API», которые, за исключением префикса /, работают должным образом.

person Adam B    schedule 20.02.2018    source источник


Ответы (1)


Я проверил и обнаружил, что когда в определенном типе status нет комментариев, он выдает ошибку 404, а не возвращает пустой результат. Чтобы объяснить на живом примере, для статуса live я вижу комментарии, как обычно для -

https://www.googleapis.com/blogger/v3/blogs/2295610366269213074/posts/1288081480380921154/comments?status=live&alt=json&maxResults=200&key=KEY

Но для статуса spam я получаю ошибку 404, так как в настоящее время в очереди спама нет комментариев для этого конкретного сообщения -

https://www.googleapis.com/blogger/v3/blogs/2295610366269213074/posts/1288081480380921154/comments?status=spam&alt=json&maxResults=200&key=KEY

Если вы пытаетесь получить доступ только к опубликованным комментариям к сообщению в своем приложении, вы можете использовать общедоступный URL-адрес фида в формате -

https://www.blogger.com/feeds/<BlogID>/<PostID>/comments/default?alt=json&max-results=200
person Prayag Verma    schedule 23.02.2018
comment
Я сначала подумал, что ты был прав. Но не могу подтвердить ваши слова. У меня есть живые (опубликованные) комментарии, но я не могу перечислить какие-либо комментарии. Даже без фильтра status= я получаю 404 при использовании библиотеки sdk клиента python. И если я добавлю фильтр для комментариев, которого нет в try this API, я все равно получу ответ 200, даже если результат будет пустым. Почему это так отличается? Кажется, он дает три разных результата (ваш), (мой) и третий при использовании try this API. - person Adam B; 23.02.2018
comment
Пробовал через API Key, работает как вы описываете. Он не работает с клиентской библиотекой python (которая использует OAuth) - person Adam B; 24.02.2018
comment
Поведение API немного ошибочно. Может быть полезно поднять этот вопрос на форуме разработчиков — groups.google.com/forum/#! форум/bloggerdev . Месяц назад кто-то поднимал похожую проблему ( groups.google.com /forum/#!topic/bloggerdev/_-LtSQ3Bu64 ), но, похоже, еще никто не ответил - person Prayag Verma; 24.02.2018