안녕하세요
nextPageToken 이용하기 본문
playListItems 예시
/**
* @param {Array} channelIdArray
* @returns
*/
exports.getAllPlaylistItems = async (playlistId) => {
const apiKey = process.env.REACT_APP_YOUTUBE_API_KEY;
let nextPageToken = null;
let videos = [];
try {
do {
const params = {
key: apiKey,
part: ["snippet"].join(","),
playlistId,
maxResults: 50,
pageToken: nextPageToken,
};
const response = await axios.get("https://youtube.googleapis.com/youtube/v3/playlistItems", { params });
videos = [...videos, ...response.data.items];
nextPageToken = response.data.nextPageToken || null;
} while (nextPageToken);
return videos;
} catch (error) {
console.error(error, "getPlaylistItems error");
return [];
}
};
1. nexPageToken을 선언합니다.
exports.getAllPlaylistItems = async (playlistId) => {
const apiKey = process.env.REACT_APP_YOUTUBE_API_KEY;
let nextPageToken = null;
2. 다수의 items를 담을 videos 배열을 만듭니다.
let videos = [];
3. 처음에는 nextPageToken이 없기 때문에 do while문을 이용합니다.
try {
do {
4. params를 설정하고 요청을 보냅니다.
const params = {
key: apiKey,
part: ["snippet", "status"].join(","),
playlistId,
maxResults: 50,
pageToken: nextPageToken,
};
const response = await axios.get("https://youtube.googleapis.com/youtube/v3/playlistItems", { params });
5. 반환받은 아이템을 videos 배열에 집어넣고, nextPageToken 값이 존재한다면 할당합니다.
videos = [...videos, ...response.data.items];
nextPageToken = response.data.nextPageToken || null;
6. nextPageToken이 없을 때까지 videos 배열에 반환받은 items를 추가합니다.
} while (nextPageToken);
return videos;
=> 완성된 videos 배열을 반환합니다.
'유튜브컨텐츠탐색-StelLife > Youtube API' 카테고리의 다른 글
프로젝트(5) - 기능 설계 (0) | 2023.02.08 |
---|