获取用户拥有的YouTube频道列表

时间:2016-06-23 06:35:11

标签: java spring youtube-api

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

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

我正在使用RestTemplate中的org.springframework.web.client来提出请求。

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建议的方式实施解决方案,但是甚至无法提出好的请求。

2 个答案:

答案 0 :(得分:0)

使用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

答案 1 :(得分:0)

如果您收到Error 400

  

BAD REQUEST

     
      
  • 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