我正在尝试获取用户使用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建议的方式实施解决方案,但是甚至无法提出好的请求。
答案 0 :(得分:0)
使用https://www.googleapis.com/youtube/v3/channels
看起来你已经有了正确的方法。如果您只想获取经过身份验证的用户的频道ID,则可以使用参数part=id
和mine=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