기술자를 지원하는 고양이 - Nyan bot을 만들었습니다.

4031 단어 슬랙bot
이 기사는 『Slack Advent Calendar 2018』의 11일째 기사입니다.

개요



기술(자)를 지지하는 고양이라고 하는 것으로 「냥-」이라고 발언하면, 희미하게 고양이 화상을 돌려 주는 bot를 만들어 보았습니다.



배경



날마다 보내고 있어 「냐ー」라고 발언할 기회 많다고 생각합니다만, slack에서 「냐ー」라고 해도 아무런 반응 없이 허하게 흘러가는 것을 바라보는 것은 괴롭다고 생각했기 때문에 만들었습니다.
(덧붙여서 이 bot를 지인의 slack로 운용하고 있습니다만, 비교적 이용률이 높아서 기쁩니다)

구현



Slack 측은 Outgoing webhook을 이용해, 백엔드는 AWS의 API Gateway+Lambda로 만들고 있습니다.
(Outgoing webhook은 deprecated가 될 예정이라고 하므로, 곧 Slack App을 사용한 구현으로 고치고 싶습니다)

고양이 이미지는 어쩐지 타피. 작은 m에서 제공하는 Api를 사용합니다.
정지화상보다 동영상 쪽이 기쁘다고 생각했으므로 이번은 gif로 취해 오도록(듯이) 하고 있습니다.

Lambda 소스



람다
const https = require('https');

const API_URL = "https://api.thecatapi.com/v1/images/search?format=json&mime_types=gif";

exports.handler = (event, context, callback) => {
    https.get(API_URL, (res) => {
        res.setEncoding('utf8');
        res.on('data', (str) => {
            const data = JSON.parse(str);
            callback(null, {
                username: "cat",
                text: data[0].url
            });
        });
    });
};

요약



이런 식으로 API Gateway+Lambda를 이용하면 비교적 간단하게 만들 수 있고, 비용도 거의 걸리지 않고 slack bot를 운용할 수 있으므로 추천합니다.
물론 Cloud Functions 및 Azure Functions와 같은 다른 FaaS에서도 쉽게 구현할 수 있습니다.

이상, 전력으로 기술자를 지지하는 짱bot의 잡잡한 소개였습니다.
내일은, takahyon씨의 「LINE의 메세지를 Slack에 전송하는 Bot를 AWS로 작성해 본다.」입니다!

좋은 웹페이지 즐겨찾기