通过V3 Data API上传YouTube视频——用户是否有频道


Uploading a YouTube video via V3 Data API -- Does the user have a channel?

在没有频道的情况下将视频上传到YouTube帐户失败。

我使用YouTube数据API(第3版)和Google API客户端库PHP将自定义视频上传到用户频道。用户已授权(通过OAuth2)管理其YouTube帐户,但用户可能从未创建过YouTube频道。

问题是:在尝试开始上传之前,我如何检查用户是否有有效的频道?理想情况下,我希望在身份验证后立即进行检查。

收到有效的oAuth令牌后,您可以进行以下调用(假设'$youtube'代表您的Google_YoutubeService对象):

$channelsResponse = $youtube->channels->listChannels('contentDetails', array(
      'mine' => 'true',
    ));

如果$channelsResponse['items']为空,则经过身份验证的用户没有通道。

http获取对'的调用https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=真&key={}&access_token={}'即使用户没有频道,也会返回项目。

一个示例响应是:

{u'etag': u'"IHLB7Mi__JPvvG2zLQWweA"',
 u'items': [{u'contentDetails': {u'googlePlusUserId': u'107123',
    u'relatedPlaylists': {u'favorites': u'FLMZmB78WMw',
     u'likes': u'LLMZmB78we',
     u'uploads': u'UUMZmB78Wwef',
     u'watchHistory': u'HLMZmB78Wwe',
     u'watchLater': u'WLMZmB78WMDgwef'}},
   u'etag': u'"IHLB7Mi__JPvvG2zLQWAg8l36"',
   u'id': u'UCMZmB78WMD',
   u'kind': u'youtube#channel'}],
 u'kind': u'youtube#channelListResponse',
 u'pageInfo': {u'resultsPerPage': 1, u'totalResults': 1}}

如果"googlePlusUserId"正在响应,则用户具有通道。