我正在尝试获取用户使用YouTube数据API(V3)制作的通道ID列表。我该怎么做呢?我有授权后获得的用户访问令牌。
我想为每个频道的订户计数获取我已经通过我知道的一个频道的ID之一来获取订户数,但这是用于测试的目的。
我正在使用org.springframework.web.client
的RestTemplate
来提出请求。
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");
我尝试实施解决方案,如此答案所建议,但甚至无法提出一个很好的要求。
使用https://www.googleapis.com/youtube/v3/channels
看起来您已经拥有正确的方法。如果您只想获取身份验证的用户的通道ID,则可以使用参数part=id
和mine=true
。
要使用访问令牌,您可以在此处遵循其中一种方法 - 在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"
}
]
}
我没有太多关于如何使用弹簧框架提出这些请求的指导 - 如果您仍然遇到麻烦,建议您验证它们在春季之外工作。您可以在"频道#列表"页面上找到更多信息,并测试生成和使用OAuth访问令牌尝试OAUTH 2.0 PLAYGROUND。
如果您收到错误400 :
坏请求
- Incompatible Parameters - 请求指定两个或多个无法在同一请求中使用的参数。
- 无效的FalidFilters - 请求指定无效的滤镜参数。
- InvalidPageToken - 请求指定无效的页面令牌。
- *8 MissingRequiredParameter ** - 请求缺少必需的参数。
- 意外参数 - 请求指定意外参数。
检查您要收到的不良请求错误描述以比较并使用示例代码和API参考指南更改它以遵循正确的格式。
尝试使用 Java代码样本熟悉YouTube数据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