swift - YouTube 数据 API 未返回某些帐户的频道数据
问题描述
我正在尝试从以下 YouTube 数据 API 端点获取频道用户数据: 频道:使用此 URL 列出:
https://www.googleapis.com/youtube/v3/channels?part=id%2Csnippet&mine=true
.
用户数据用于桌面应用程序中的帐户识别和实时流式传输。
如果没有以下内容,我将无法创建“包装”YouTube 帐户来访问 YouTube:
- 频道 ID
id
和 - 频道名称,
title
.
问题是 YouTube API 为某些帐户提供数据。我拥有三个 YouTube 帐户和四个频道,目前只有一个无法使用。
API 返回以下数据:
▿ 3 elements
▿ 0 : 2 elements
- key : "kind"
- value : youtube#channelListResponse
▿ 1 : 2 elements
- key : "pageInfo"
▿ value : 2 elements
▿ 0 : 2 elements
- key : resultsPerPage
- value : 5
▿ 1 : 2 elements
- key : totalResults
- value : 0
▿ 2 : 2 elements
- key : "etag"
- value : afx3VqgXQBJVZZO3RVos5k1JEM0
有效的 JSON 响应如下所示:
▿ 4 elements
▿ 0 : 2 elements
- key : "items"
▿ value : 1 element
▿ 0 : 4 elements
▿ 0 : 2 elements
- key : etag
- value : SOME_ETAG
▿ 1 : 2 elements
- key : kind
- value : youtube#channel
▿ 2 : 2 elements
- key : id
- value : SOME_ID
▿ 3 : 2 elements
- key : snippet
▿ value : 5 elements
▿ 0 : 2 elements
- key : localized
▿ value : 2 elements
▿ 0 : 2 elements
- key : title
- value : SOME_TITLE
▿ 1 : 2 elements
- key : description
- value :
▿ 1 : 2 elements
- key : title
- value : SOME_TITLE
▿ 2 : 2 elements
- key : description
...
到目前为止我尝试了什么:
- 验证 Web API Explorer 是否显示相同的问题。
- 验证权限是否相同。
- 验证帐户是否启用了所有相同的功能。
这个问题是新问题,几个月前一切正常,我在回复中没有发现任何错误。
解决方案
我在许多其他问题中发现了这个问题。其他问题有助于误解和混淆,与此 SO 帖子无关。
对于 Youtube 用户没有频道的情况,Youtube Data API 返回一个不完整的响应。*
Youtube 用户* 可以在三种状态下使用他的帐户直播功能:
- 用户无法直播,因为他没有频道。
- 用户无法直播,因为他的频道未通过电话(短信)验证。
- 用户可以直播,因为他的频道已经过验证。
Google 用户* 的默认启动状态是 1)。Google 用户* 不会自动拥有 Youtube 频道。他需要创造一个。当开发人员使用以下网址向 API 询问此用户的频道列表(状态 1)时: https ://www.googleapis.com/youtube/v3/channels?part=id%2Csnippet&mine=true 他将收到错误的答案:
▿ 3 elements
▿ 0 : 2 elements
- key : "kind"
- value : youtube#channelListResponse
▿ 1 : 2 elements
- key : "pageInfo"
▿ value : 2 elements
▿ 0 : 2 elements
- key : resultsPerPage
- value : 5
▿ 1 : 2 elements
- key : totalResults
- value : 0
▿ 2 : 2 elements
- key : "etag"
- value : afx3VqgXQBJVZZO3RVos5k1JEM0
预期的答案是:
- 错误 - “获取频道列表失败。用户没有频道。”
▿ 4 个元素 ▿ 0:2 个元素 - 键:“错误” ▿ 值:1 个元素 ▿ 0:2 个元素 - 键:“消息” - 值:“获取频道列表失败。用户没有频道。” ...
响应代码 200 - "items" = [] -> 只是一个空数组
▿ 4 个元素 ▿ 0:2 个元素 - 键:“项目” ▿ 值:0 个元素
... ▿ 1 : 2 elements - key : "kind" - value : youtube#channelListResponse ▿ 2 : 2 elements - key : "pageInfo" ▿ value : 2 elements ▿ 0 : 2 elements - key : resultsPerPage - value : 5 ▿ 1 : 2 elements - key : totalResults - value : 1 ▿ 3 : 2 elements - key : "etag" - value : 6mudnjdaMbyKk1XIwl4DvHzx5pc
*Google 和 Youtube 在其文档中不使用 Google 用户或 Youtube 用户。据我了解,您可以拥有一个 Google 帐户(允许您访问其他 Google 产品),而无需登录 Youtube。当您第一次登录 Youtube 时,会出现一个带有用户名的小缩进,表明这实际上是一个 Youtube 帐户。该 Youtube 帐户将没有频道并且 UI 状态(“无频道”)。当您单击“切换帐户”选项卡时,如果您有多个频道,您将能够实际切换频道。您还可以切换帐户。
编辑1:
API 问题可以在这里找到。
编辑2:
可以在此处找到 Youtube Data API“如何获得帮助”页面问题。
推荐阅读
- ios - UIApplicationProtectedDataWillBecomeUnavailable 通知 VS applicationProtectedDataWillBecomeUnavailable 委托
- python - Pipenv 安装运行时错误:未创建或指定位置
- python - Python:如何迁移在数据框中将 SVM 函数应用于分组依据的 R 函数
- excel - 当我从另一个宏“调用”它时宏不起作用,但当我单独选择它时它确实起作用
- kubernetes-helm - Helm 中的 {{- range .Values.xxx }} 和 {{ range .Values.xxx }} 有什么区别
- authentication - 当数据存储中没有本地用户时如何将身份验证标记为失败
- html - 我想在白色背景 div 中使按钮边框透明
- android - SharedViewModel 是否违反单一职责原则?
- java - JOOQ 中的 POJO 映射,无论参数顺序如何
- python - 使用 python 在邮件正文中发送 html