如何通过Google gapi客户端身份验证找到YouTube用户频道?

问题描述

对于我正在构建的应用程序,我希望最终用户使用gapi OAuth2登录,然后 从那里,我希望应用程序在其YouTube频道上查找播放列表 并加载它。

getAuthInstance方法返回带有Google用户名的对象。然而 对于我自己的特定用户名,查询用户名查找频道ID 没有返回结果。从某些browsing online来看,这显然是一个问题 使用某些YouTube帐户。

此问题是否有解决方法

解决方法

如果您通过GAPI进行了有效的OAuth 2.0身份验证,那么使用使用mine=true查询参数GAPI的API端点来确定经过身份验证的用户的频道ID非常简单:>

Channels.list(布尔值)
此参数只能在正确的mine中使用。将此参数的值设置为true可以指示API仅返回经过身份验证的用户拥有的频道。

调用端点时,返回的authorized request的属性id包含经过身份验证的用户的频道ID。


对于涉及JavaScript var channelId; function loadAPIClientInterfaces() { gapi.client.load('youtube','v3',function() { getUserChannel(); }); } function getUserChannel() { var request = gapi.client.youtube.channels.list({ part: 'id',fields: 'items(id)',mine: true }); request.execute(function(response) { if ('error' in response) { displayMessage(response.error.message); } else { channelId = response.items[0].id; } }); } (即Google的浏览器端JavaScript的客户端库)实现的问题,代码如下所示(对于更广泛的上下文,请查看来自Google的此示例源文件:{{3 }}):

analytics_codelab.js

请注意,上面的代码(与Channels.list中的代码不同)使用Channels resource请求参数从{{1}}端点仅获取通道的ID信息(询问总是很有益的)仅从API中获取实际使用的信息。