Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
7
Help us understand the problem. What is going on with this article?
@tenmihi

技術(者)を支えるネコ - にゃーんbotを作った

More than 1 year has passed since last update.

この記事は『Slack Advent Calendar 2018』の11日目の記事です。

概要

技術(者)を支えるネコということで「にゃーん」と発言すると、すかさず猫画像を返してくれるbotを作ってみました。

スクリーンショット 2018-12-11 13.26.46.png

背景

日々過ごしていて「にゃーん」って発言する機会多いと思うんですが、slackで「にゃーん」って言ってもなんの反応なしに虚しく流れていくのを見つめるのは辛いと思ったので作りました。
(ちなみにこのbotを知人のslackで運用しているのですが、割と利用率が高くて嬉しいです)

実装

Slack側はOutgoing webhookを利用して、バックエンドはAWSのAPI Gateway+Lambdaで作ってます。
(Outgoing webhookはdeprecatedになる予定だそうなので、近々Slack Appを使った実装に直したいと思っています)

猫画像は TheCatApi.com で提供されているApiを利用しています。
静止画よりも動画のほうが嬉しさあると考えたので今回はgifで取ってくるようにしてます。

Lambda ソース

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で作成してみる。」です!

7
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
tenmihi
mfac
実際に人を動かすことを特徴とした位置情報連動型ゲーム及びサービスを開発しています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
7
Help us understand the problem. What is going on with this article?