0

我在处理 YouTube 个人资料请求时遇到问题。我认为这与关联了 Google 帐户的用户有关。

我们的系统有一个授权 YouTube 帐户的流程。一旦用户授权我们的系统,我们使用访问令牌来检索用户的默认配置文件,以检查它实际上是我们期望获得授权的帐户,这对大多数用户来说都很好,但对于一个用户来说,请求https://gdata.youtube.com/feeds/api/users/default(使用 PHP Zend 库的 ->getUserProfile() 方法)正在为这个用户返回 NULL。我认为这可能是因为他们有一个主要的 Google Apps 帐户,没有 YouTube 频道,还有一个不同的 YouTube 频道(当您点击“切换帐户”时在 YouTube 帐户菜单中列出)。

我们曾尝试使用 Safari 私人浏览器和 Chrome 隐身浏览器,但这些似乎都不起作用。

有谁知道为什么会这样,以及我如何检查每个用户链接的个人资料/帐户的个人资料?

4

1 回答 1

0

并非每个帐户都有唯一的用户名,您不应依赖用户名,而应依赖频道 ID。

来自API 文档

对于使用旧版 Data API v2 的开发人员来说,最大的收获是您必须意识到并非每个 YouTube 频道都有唯一的用户名。幸运的是,每个 YouTube 频道都保证有一个与之关联的唯一频道 ID,由<yt:channelId>标签中的值表示,我们建议开发人员使用该值而不是用户名。例如,如果您有一个将 YouTube 用户名映射到有关该频道的信息的数据库,那么您的旧条目应该可以继续工作。(现有频道不会丢失其用户名。)但是,随着时间的推移,您将越来越有可能不得不使用无法由用户名唯一标识的频道。

有几个因素简化了从用户名到频道 ID 的转换。首先,Data API v2 接受 YouTube 用户名的请求 URL 中的频道 ID,这意味着您可以将频道 ID 无缝地交换到现有代码中。例如,由于 UC_x5XG1OV2P6uZZ5FSM9Ttw 是具有旧用户名 GoogleDevelopers 的频道的频道 ID,因此以下两个 URL 是等效的 API 请求:

https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1 https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1

要记住的另一件事是,每当您发出经过身份验证的 v2 请求时,您在构建请求 URL 时永远不需要包含授权通道的用户名。您始终可以使用默认值代替用户名(或频道 ID)。因此,如果您想检索当前授权用户的视频上传供稿,例如,您可以在https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1上执行此操作。

于 2013-06-11T11:59:22.057 回答