用户配置文件请求返回NULL

时间:2013-06-11 08:06:59

标签: zend-framework youtube-api

我对YouTube个人资料请求有疑问。我认为这与链接了Google帐户的用户有关。

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

我们尝试使用Safari私人浏览器& Chrome无法识别浏览器,但这些浏览器似乎都不起作用。

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

1 个答案:

答案 0 :(得分:0)

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

来自API documents

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

有几个因素简化了从用户名到渠道ID的转换。首先,Data API v2接受请求网址中的频道ID,只要它接受YouTube用户名,这意味着您可以将频道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时都不需要包含授权通道的用户名。您始终可以使用值default来代替用户名(或通道ID)。因此,如果您要为当前授权的用户检索视频上传Feed,则可以在https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1处执行此操作。