我正在尝试对YouTube Web API进行GET调用,但我无法弄清楚如何使用http.get函数传递参数。我使用了提琴手,并确保提出要求。我目前收到400错误,说我错过了参数“Part”。如何修改我的代码以在请求中包含所需的参数?
private _url = 'https://www.googleapis.com/youtube/v3/';
private _key = '';
getPlaylistVideos(playlistId, pageToken){
var url = this._url + "playlistItems";
var options = { part: 'snippet', maxResults: 50, playlistId: playlistId, key: this._key, pageToken: pageToken }
return this.http.get(url, options);
}
答案 0 :(得分:1)
您需要将搜索参数包含在您的请求中。我认为这对你有用:
getPlaylistVideos(playlistId, pageToken) {
let url = `${this._url}playlistItems`,
options = { part: 'snippet', maxResults: 50, playlistId: playlistId, key: this._key, pageToken: pageToken },
params = URLSearchParams();
for (let key in options) params.set(key, options[key);
return this.http.get(url, {search: options});
}
使用set方法创建URLSearchParams,您可以找到完整的文档here
答案 1 :(得分:0)
请看看已经问过的&解决了关于AngularJS& YouTube V3 API。 See here感谢@Sandeep Sukhija。
无论如何,关于缺少的参数part
,请将其添加到请求ex:part: 'snippet'
示例代码:
function getPlaylistVideos(playlistId, pageToken) {
// pass the page token as a parameter to the API
$.get('https://www.googleapis.com/youtube/v3/playlistItems', { part: 'snippet', maxResults: 50, playlistId: playlistId, key: key, pageToken: pageToken })
}
如何使用零件参数
part参数是任何API请求的必需参数 检索或返回资源。该参数标识一个或多个 应包含在其中的顶级(非嵌套)资源属性 API响应。例如,视频资源具有以下内容 部分:
snippet contentDetails fileDetails player processingDetails recordingDetails统计状态建议topicDetails