알쓸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=에 붙여서 보내줍니다(