我在 commentThread API 调用方面遇到问题。这是一个具体案例:评论id:z13ocxipdz3hwxqqe04cgbuadtmnhhmybyc0k
目前已有44条回复。
但是如果您使用 video_id (而不是像我们上面那样的评论 id。链接: https://www.googleapis.com/youtube/v3/commentThreads?videoId=Ui-ulCWmpOU&maxResults=100&pageToken=ChYQp7fipbfsxgIYkNGq iobjxQIgACgDEhQIABCQ0aqKhuPFAhiMqqKive-5AhgCIKwC&part=snippet%2C+replies&key={YOUR_DEVELOPER_KEY}&alt=json&order=time)并遇到评论(您可能必须使用 pageToken 来迭代页面),您将看到以下内容:
(截图:https://www.dropbox.com/s/d4bf9tk51eaw7dr/Screenshot%202015-07-21%2021.08.31.png?dl=0)
正如你所注意到的;有39条回复(评论)不属实。即使我们有回复;没有回复部分。我是不是错过了什么?
为什么回复数不一致?
为什么commentThread视频显示有39条回复却没有回复?
注释:正如
part
我正在使用“片段,回复”。我没有收到任何 API 错误(例如限制或违反限制)
来自评论线程文档:
commentThread 资源不一定包含所有回复 评论,如果你想的话,你需要使用 comments.list 方法 检索特定评论的所有回复。
改用 comments.list 调用,并为
parentId
指定 commentThread 的 ID。
当我拨打以下电话时:
https://www.googleapis.com/youtube/v3/comments?part=snippet,id&parentId=z13ocxipdz3hwxqqe04cgbuadtmnhhmybyc0k&key=[API_KEY_HERE]&order=time&maxResults=50
我收到了您提到的评论线程的所有(44)条回复。
解决您的问题:
为什么回复数不一致?
如果我不得不猜测,我会说这可能是由于 API 如何区分评论和评论线程(它考虑对线程中其他回复的回复,而不是它们与视频本身关联)。由于文档说 commentThread 资源可能不包含对评论的所有回复,因此我认为这仍然按预期工作。无论如何,将来通常最好只报告更多数量的回复,因为 API 丢失某些结果的可能性比报告额外结果的可能性更大。另外,请记住,如果您想要某个评论线程的所有回复,您应该使用 comments.list。
为什么该commentThread有39条回复却没有回复?
说实话,我不确定这是 YouTube 的事还是 G+ 的事。当我查看其他一些有回复的评论线程时,当指定视频 ID 时,我能够通过 API 调用看到它们。 然而,正如 Daniel 提到的,您实际上无法看到您在视频本身上指定的线程的回复(但当您转到该用户的 G+ 页面时可以看到它们)。用户可能对其共享帖子的评论对其 G+ 设置进行了某些操作,这就是为什么它们没有显示在视频本身上,因此也没有显示在 commentThreads 列表请求中。除非您与熟悉 G+/YouTube 集成的人交谈,否则很难说。
虽然我无法明确回答您的问题,但我找到了一些有用的信息,可以为您提供一些清晰度和方向。
关于您问题中概述的具体案例:用户
"authorDisplayName": "Tammy L."
于2013年11月16日对视频"videoId": "Ui-ulCWmpOU"
发表评论,并在2013年11月16日至11/18/2013期间收到回复。 根据 Tammy L. 在 Google+ 上的记录,自该日期起,她的最初评论有 44 条回复:
不过,根据 YouTube 上的记录,她的评论似乎有 42 条回复,这与您的 API 调用返回的任何一个值都不匹配。 更奇怪的是,当我点击“查看所有 42 条回复”时,Google 不会显示评论:
看来
commentId
调用提供了对 Tammy L. 最初评论的正确回复数量,这与她的 Google+ 帐户上显示的回复数量一致。 也许 videoId
调用的问题(包括该调用不提供 replies
的事实)可归因于 Google 在 Tammy L. 发表最初评论时(2013 年 11 月)实施的 changes,尽管我不太确定。