首先,这个问题可能听起来像是重复的,但从我已经看过的答案来看,我认为答案不符合这个目的,因为我没有得到许可。
我正在尝试在授权他们的Google帐户后找到YouTube频道ID。
我使用的范围是:
https://www.googleapis.com/auth/yt-analytics.readonly
https://www.googleapis.com/auth/userinfo.profile
很多答案都是指访问V3频道api以获取频道ID。
$channelData = file_get_contents("https://www.googleapis.com/youtube/v3/channels?part=id&mine=true&access_token=".$token['access']);
$channelData = json_decode($channelData, true);
问题在于我使用的范围无法访问此内容。关于SO的其他问题都围绕着这个终点。
Youtube API Retrieving Channel ID after authentication
How to get Channel ID (YouTube API v2)?
How to Get Channel id or url after Google Oauth PHP
请注意我希望将范围保持在绝对最小值。为什么只使用分析API才能实现这一点?我是否必须使用其他YouTube范围来查找刚刚授权的人的频道ID?
我问的问题是
有什么方法可以获得刚刚授权使用我当前作用域的用户的频道ID?如果不是我可以用来获取其频道ID的最小权限范围是什么?
答案 0 :(得分:1)
您应该添加youtube.readonly
范围,像socialite
这样的插件正好具有此范围的硬编码。频道snippet
可以通过channels
方法 - docs与part=snippet
获得。
只读范围足够轻,可以将其包含在您的列表中。 userinfo.profile
和yt-analytics.readonly
无法访问频道列表。此范围是获取频道ID所需的唯一范围。
答案 1 :(得分:0)
[编辑]
抱歉,以前我错过了auditDetails
部分。您可以在此处找到YouTube API范围:YouTube API scopes
你当然需要那个:https://www.googleapis.com/auth/youtube
。我不确定这个:https://www.googleapis.com/auth/youtube.force-ssl
因为除了"强制ssl"之外没有任何解释。一部分。