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

Posted

技术标签:

【中文标题】PHP - 在 OAuth 之后获取频道 ID - YouTube API【英文标题】:PHP - Getting Channel ID after OAuth - YouTube API 【发布时间】:2018-02-02 19:54:30 【问题描述】:

首先,这个问题听起来像是重复的,但从我已经看到的答案来看,我认为答案不适合这个目的,因为我没有权限。

在他们授权他们的 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 的最小权限范围是多少?

【问题讨论】:

【参考方案1】:

您应该添加youtube.readonly 作用域,像socialite 这样的插件正好有这个作用域硬编码。频道snippet 可以通过channels 方法-docs 和part=snippet 获得。

只读范围足够轻,可以将其包含到您的列表中。 userinfo.profileyt-analytics.readonly 无权访问频道列表。此范围是获取频道 ID 所需的唯一范围。

【讨论】:

【参考方案2】:

[编辑]

抱歉,之前我错过了auditDetails 部分。您可以在此处找到 YouTube API 范围:YouTube API scopes

你肯定需要那个:https://www.googleapis.com/auth/youtube。我不确定这个:https://www.googleapis.com/auth/youtube.force-ssl,因为除了“force ssl”部分之外没有任何解释。

【讨论】:

感谢您的回答。我不想得到 auditDetails 部分。最好是 sn-p 或 id。另外,(也许我错了)但我相信范围仅限于 MCN/CMS 持有者。我会做一些测试然后回来! :)

以上是关于PHP - 在 OAuth 之后获取频道 ID - YouTube API的主要内容,如果未能解决你的问题,请参考以下文章

如何从 YouTube 频道 ID 获取用户的 Google+ ID

php 从频道名称获取youtube ID频道

YouTube API:如何通过频道名称获取频道 ID?

Discord Oauth2 PHP 中的 JPEG 头像

PHP:Google plus Oauth 2.0 - 获取OAuth2访问令牌时出错,消息:'invalid_client'

我们可以从 Twitter oauth API 获取电子邮件 ID 吗?