【问题标题】:Get list of youtube channels a user have获取用户拥有的 youtube 频道列表
【发布时间】:2016-10-25 08:00:05
【问题描述】:

我正在尝试获取用户使用 YouTube 数据 API (V3) 创建的频道 ID 列表。我该怎么做呢?我有授权后获得的用户访问令牌。

我想通过传递我知道的频道 ID 之一来获取我已经完成的每个频道的订阅人数,但这是出于测试目的。

我正在使用来自org.springframework.web.clientRestTemplate 提出请求。

RestTemplate restTemplate = new RestTemplate();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>();

//what parameters to set?

URIBuilder uriBuilder = URIBuilder.fromUri("https://www.googleapis.com/youtube/v3/channels");

按照this SO answer的建议,我尝试实施解决方案,但甚至无法提出好的要求。

【问题讨论】:

  • 您使用哪种语言?
  • 如标签所示,我使用的是Java Spring框架。这是我使用的正确标签吗?
  • “甚至无法提出好的要求。”我没有得到这部分
  • 我的意思是设置了参数并发出了请求,我得到了 400 错误(错误请求)。

标签: java spring youtube-api


【解决方案1】:

看起来您已经有了正确的方法,使用https://www.googleapis.com/youtube/v3/channels。如果只想获取认证用户的频道 ID,可以使用参数part=idmine=true

要使用访问令牌,您可以采用here 中的一种方法 - 要么在 HTTP 请求标头中包含 Authorization: Bearer ACCESS_TOKEN,要么作为另一个查询参数 access_token=ACCESS_TOKEN

示例请求:

https://www.googleapis.com/youtube/v3/channels?
    part=id&
    mine=true&
    access_token=ACCESS_TOKEN

响应示例,items/id 字段中包含频道 ID:

{
 "kind": "youtube#channelListResponse",
 "etag": ETAG,
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#channel",
   "etag": ETAG,
   "id": "UCBR8-60-B28hp2BmDPdntcQ"
  }
 ]
}

我没有太多关于如何使用 Spring 框架发出这些请求的指导 - 如果您仍然遇到问题,我建议验证它们是否在 Spring 之外工作。您可以在 channels#list 页面上找到更多信息,要测试生成和使用 OAuth 访问令牌,请尝试 OAuth 2.0 Playground

【讨论】:

    【解决方案2】:

    如果您收到Error 400

    错误的请求

    • incompatibleParameters - 请求指定了不能在同一个请求中使用的两个或多个参数。
    • invalidFilters - 请求指定了无效的过滤器参数。
    • invalidPageToken - 请求指定了无效的页面令牌。
    • *8missingRequiredParameter** - 请求缺少必需参数。
    • unexpectedParameter - 请求指定了意外参数。

    检查您收到的错误请求错误描述,将其与示例代码和API Reference 指南进行比较和更改,以遵循正确的格式。

    尝试使用Java Code Samples 熟悉 Youtube Data API。

    来源:

    https://developers.google.com/youtube/v3/code_samples/

    https://developers.google.com/api-client-library/java/

    https://github.com/youtube/api-samples

    https://youtu.be/HTr778JctJE?list=PLhBgTdAWkxeD0Kpo-Qtzv1Gc7UhPRrPgn

    【讨论】:

      猜你喜欢
      • 2013-05-13
      • 1970-01-01
      • 2012-10-24
      • 2013-05-14
      • 1970-01-01
      • 2017-01-15
      • 2014-10-12
      • 2015-07-07
      相关资源
      最近更新 更多