使用OAuth 2.0 for Web Server Applications流时无法选择正确的频道

Leo*_*äki 7 youtube-api google-oauth youtube-data-api

我的应用遵循服务器端授权流程,如https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps中所述.我强迫prompt=select_account.

在最基本的情况下,在"步骤3:Google提示用户同意"中,用户会看到一个屏幕,其中包含一个或多个名为"选择帐户"的帐户.如果用户选择的帐户只有一个与之关联的通道,则流程将直接进入"步骤4:处理OAuth 2.0服务器响应".

如果用户有多个与该帐户关联的频道,则该用户可能会看到另一个标题为"选择您的帐户或品牌帐户"的屏幕.

就我个人而言,我有两个Google帐户:个人帐户和工作帐户,我在"选择帐户"屏幕上看到它们.如果我选择我的个人帐户,我会直接访问该应用程序.如果我选择了我的工作帐户,我会看到其他屏幕,我可以选择我的"个人"工作YouTube频道/帐户或公司范围的共享频道/帐户.我总共可以管理和访问3个YouTube频道/帐户.

问题是某些用户看不到"选择您的帐户或品牌帐户"中列出的所有频道.如果用户同时登录YouTube,他们仍然可以通过YouTube上的右上角帐户选择器访问所有频道,但他们根本无法在选择器中看到这些频道.我曾尝试channels.list在这些情况下调用YT API ,但它不会返回丢失的频道,只返回用户从选择器中选择的频道.

感觉我在这里遗漏了一些明显的东西,但由于我对OAuth流程没有多少控制权,我不确定如何解决这个问题.这对我来说是一个问题,还是我只需要指导用户在他们的最后做点什么?

可能相关的事情:

Ari*_*ion 1

未列出的帐户可能是用户不是所有者而只是管理者的帐户,并且未设置onBehalfOfContentOwner标志。

channels.list API中有参数

由我管理 布尔值

该参数只能在正确授权的请求中使用。注意:此参数仅供 YouTube 内容合作伙伴使用

将此参数的值设置为 true 以指示 API 仅返回由onBehalfOfContentOwner 参数指定的内容所有者管理的频道。用户必须作为链接到指定内容所有者的 CMS 帐户进行身份验证,并且必须提供 onBehalfOfContentOwner。

onBehalfOfContentOwner 字符串

该参数只能在正确授权的请求中使用。注意:此参数仅供 YouTube 内容合作伙伴使用。

onBehalfOfContentOwner 参数表示请求的授权凭据可识别代表参数 value 中指定的内容所有者进行操作的 YouTube CMS 用户 。此参数适用于拥有并管理许多不同 YouTube 频道的 YouTube 内容合作伙伴。它允许内容所有者进行一次身份验证并访问其所有视频和频道数据,而无需为每个单独的频道提供身份验证凭据。用户进行身份验证的 CMS 帐户必须链接到指定的 YouTube 内容所有者。