알쓸IT잡
가끔 매일 뭔가 알림을 주는 슬랙봇을 만들고 싶을 때가 있습니다. 재미 삼아 만든 노동요 봇(유튜브 MostPopular 50곡 중에서 추천)과 함께 그 방법을 공유해보자면,
YouTube.Videos.list
와 같은 방식으로 특정 비디오들을 검색할 수 있습니다.function findRoDongYo() {
const playList = YouTube.Videos.list("id", {
chart: "mostPopular",
hl: "ko_KR",
regionCode: "KR",
videoCategoryId: "10",
maxResults: 50
});
const videos = playList.items;
// Logger.log(videos);
const selected = Math.floor(Math.random() * videos.length);
return videos[selected];
}
selected
는 뭐지 하실까봐, 50개 중에 1개만 slack으로 보내기 위해 random하게 선택하는 로직을 붙였습니다(안붙이면 매일 BTS노래로 아침을 시작할 것만 같았습니다)Logger.log
주석을 풀어 API가 정상적으로 불러지는지 봅시다. 위에 곤충(Debug 버튼)버튼 옆에 플레이 버튼(▶️)을 클릭해줍니다.보기 > 로그
에서 로그가 제대로 찍히는 것을 볼 수 있을 겁니다.findRoDongYo
함수 위나 아래 어디든 붙여주세요.
function postRoDongYo() {
const roDongYo = findRoDongYo();
const payload = {
channel: "<채널ID>",
text: "🎶오늘의 로동요입니다! \n https://www.youtube.com/watch?v=" + roDongYo.id
};
const headers = {
Authorization: "Bearer <XOXP 토큰>"
}
const option = {
method: "post",
contentType: "application/json; charset=utf-8",
headers: headers,
payload: JSON.stringify(payload)
};
let response = UrlFetchApp.fetch("https://slack.com/api/chat.postMessage", option);
}
youtube.com/watch?v=
에 붙여서 보내줍니다(