PHP - 在OAuth之后获取频道ID - YouTube API

时间:2017-08-24 20:00:12

标签: php api oauth youtube youtube-data-api

首先,这个问题可能听起来像是重复的,但从我已经看过的答案来看,我认为答案不符合这个目的,因为我没有得到许可。

我正在尝试在授权他们的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的最小权限范围是什么?

2 个答案:

答案 0 :(得分:1)

您应该添加youtube.readonly范围,像socialite这样的插件正好具有此范围的硬编码。频道snippet可以通过channels方法 - docspart=snippet获得。

只读范围足够轻,可以将其包含在您的列表中。 userinfo.profileyt-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"之外没有任何解释。一部分。