【问题标题】:Uploading a YouTube video via V3 Data API -- Does the user have a channel?通过 V3 Data API 上传 YouTube 视频 -- 用户有频道吗?
【发布时间】:2013-12-16 22:32:58
【问题描述】:

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

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

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

【问题讨论】:

    标签: php youtube youtube-api


    【解决方案1】:

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

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

    如果$channelsResponse['items']为空,则认证用户没有频道。

    【讨论】:

    • 这是我尝试的第一件事;(...不幸的是,即使用户没有上传通道,listChannels('contentDetails',...) 似乎也会返回非空的items
    • 你是对的,当然……我忘记了可能会返回其他类型的频道。检查 contentDetails 的“googlePlusUserId”参数——它是否存在于非上传频道?
    【解决方案2】:

    http 获取“https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&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”响应,则用户有频道。

    【讨论】:

      猜你喜欢
      • 2015-08-31
      • 2019-02-28
      • 2021-03-13
      • 1970-01-01
      • 2021-06-03
      • 2015-06-27
      • 2019-06-17
      • 2019-05-22
      • 2021-01-15
      相关资源
      最近更新 更多