3

我有一个脚本来帮助管理一个 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">

与 Try this API 比较

有点奇怪的是,当我将“Try this API” 与相同的blogIdand一起使用时postId,我得到了预期的响应....如果我还postId使用正斜杠作为前缀,即/<RedactedPostId>没有正斜杠前缀,我得到一个空结果. 我在复制/粘贴postId. 如果我检查 devtools 中的网络选项卡,请求的 URL(当收到正确的响应时)是https://content.googleapis.com/blogger/v3/blogs/<RedactedBlogId>/posts/%2F<RedactedPostId>/comments?key=<RedactedKey>

唯一的主要区别(除了非常奇怪的前缀要求......)是域名。

Python 客户端库

使用Python Client Library v1.6.5,到目前为止,我的脚本工作正常。我可以请求博客信息和帖子列表就好了。所以我已经排除了身份验证/授权的问题。

结论

  1. 我不认为授权是问题,因为其他资源有效
  2. 我没有对我的脚本进行任何更改......它只是有一天停止工作
  3. 升级到最新版本的 python 客户端库没有解决它
  4. /在文档站点上“尝试”API 时我必须加上前缀的事实表明 API 资源有些可疑......
  5. postId在我的 python 脚本中添加前缀/不能解决问题
  6. 为了清楚起见,blogId并且postId是正确的,我已经仔细检查、三重检查、四重检查和复制粘贴完全相同的值到“尝试这个 API”,除了/-prefix 之外,它按预期工作。
4

1 回答 1

2

我测试并发现,当特定类型的 中没有评论时 status,它会给出 404 错误,而不是返回空结果。用一个活生生的例子来解释,对于 status 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

如果您只是尝试访问应用程序中帖子的已发布评论,那么您可以使用可公开访问的 Feed URL,其格式为 -

https://www.blogger.com/feeds/<BlogID>/<PostID>/comments/default?alt=json&max-results=200
于 2018-02-23T06:24:52.313 回答