logo header
logo header
logo header
logo header
  • 2018.12.20
  • 技術ブログ

Botに繋いでみたら相性のよかったAPIまとめ

はじめに

初めての人は初めまして。二度目の人は二度目まして。andashです。
この度Advent Calendarに参加させていただきまして光栄です! (ありがとうございます)

今回!ご紹介させていただく内容ですが!!
フリーで使える!!!チャットツールに繋いで便利だった(面白かった)APIまとめをご紹介させていただきます!!!!

私の所属するプロジェクトでは、ChatworkとSlackを併用しており、そのうちSlackは分報として使用しています。
作業やタスクの書き残しとして使うことが主な用途ですが、それだけではもったいない!もっと盛り上げられるようなAPIを組み込んで、会話を活性化させたい!という思いから便利になりそうなAPIを探していった結果をまとめてみました。
それぞれ使ってみた感想などを書いてみましたので、もし興味を持っていただければ嬉しいですっ・・・・・・!!

◆環境
サーバー:AWS(Amazon EC2)
言語:Python (Slackbotライブラリを使用)

早速紹介に行くぞ!

目次

Bitly API


https://dev.bitly.com/

短縮URLでお馴染みのBitlyです。
日本語を含むURLや長いURLを資料とかに使うと見栄え良くないですよね?
わざわざBitlyまで行くのが若干煩わしかったので、APIを繋いでフレキシブルにSlack上で短縮し、URLを返却できたらええやん(ええやん)!と思った次第です。

使用例:

・・・で実際に使ってみた感じですが、やはりSlack上で短縮URLを生成してくれるのは楽ですねぇ・・・
今回は短縮URL生成のAPIのみ使用しましたが、以前に作成した短縮URL一覧も出すことができたり、アクセスログも出すことができるので活用の幅は広そう。
おすすめ度:★★★★★

Microsoft Translator API (Translator Text)


https://azure.microsoft.com/ja-jp/services/cognitive-services/translator-text-api/

Microsoftが提供している翻訳APIです。
エラーの解析や分かりやすい変数名を模索する際によく翻訳を使用するのですが、これもわざわざ翻訳サイトを開いていてはちょっと面倒・・・と思い翻訳APIを探したところ、こちらを見つけました。
導入の際、Microsoft Azureに登録しなければいけなかったのが若干ハードルありますね。
課金コースがありますが、毎月200万文字までは無料とのことですので、Freeでも全然使えます!

使用例:

(honと書いているのは”翻”訳の短縮コマンドの意です・・・こういうところで英語力のなさを知らしめてゆくstyle)
やはりリクエストに対して、適切なレスポンスが返ってくる楽しさがありますね。
若干日本語として怪しい箇所はありつつも、大まかな意味は伝わってくるのでOK!
まだ業務として利用するシーンはありませんが、今後プロジェクトメンバーの間で活用されること間違いなしでしょう!

余談

初めてAzureのAPI繋ぎましたが、APIキーからトークン取得して、初めてAPIコールできるんですね・・・(チョットメンドクサイ)
また、APIとは全く関係ないですけど、受け取った文字が半角英数字の場合、英⇒日へ変換するようにしたのですが、pythonの英数字判定で小一時間程ハマりました・・・ (isalnumは信用しなぃ・・・)
おすすめ度:★★★★☆

MediaWiki API


https://www.mediawiki.org/wiki/API:Main_page/ja

サービス名からも察しが付くかと思いますが、wikipediaを操作できるAPIです。今回はこの中でもページ情報取得の機能のみ利用しました。
導入したきっかけは特になく、面白半分で導入してみたAPIの一つです。単語としては知っているが、意味はいまいちよくわからない、という場面があったので、それもbotに委ねちゃおうと。

使用例:

上手くwikipediaページの情報が取れてますね。流石に全文表示しようとすると読むのが大変なので、文字数で概要を省略するようにしました。
全文見たい人向けにリンクも貼って上げて優しさアピしておき・・・ん?

そうか・・・リンク貼ったらSlackのデフォルト機能でいい感じに遷移先のプレビュー情報を表示してくれるんですね・・・(だったらAPI繋がなくても概ね実現できるじゃん・・・)
あとレスポンスの中身がhtmlタグ込みの内容になってたり、色々整形するのに手こずっていた割には↑でいい感じの部分までプレビューしてくれたので、う~んな結果に終わりました。
(Slackに繋ぐ分には)おすすめ度:★★☆☆☆

Talk API


https://a3rt.recruit-tech.co.jp/product/talkAPI/

RECRUITが提供しているAI・機械学習を活用したAPI。今回は日常会話応答機能を備えたTalk APIを繋いでみました。
今まで紹介したAPIは特定の言葉にしか反応できませんでしたが、こちらはあたかも日常会話のように応答してくれるため、一人でも言葉のキャッチボールができます!

使用例:

プロジェクトメンバーが誰もいなくなったときに話相手になってくれる。すごいやつだよ彼は。
時折ちぐはぐな返答も返ってきますが、それもまた一つの楽しみになってます。
また、利用ユーザーが増えればもっと適切な会話が行えるよう学習してゆくため、今後は、より自然な会話ができることを期待してます!
おすすめ度:★★★★☆

Dark Sky API


https://darksky.net/dev

最後は天気予報の情報取得API、Dark Skyです。(名前カッコイイ・・・)
仕事が終わり帰ろうと思った時に傘が必要だったりしますよね?(よね?)それもbotで応答できたら便利だなと思い導入。一日に1,000リクエスト超えなければ無料なので、内内で使う分には十分だと思います。

使用例:

使用例では現在時刻+3h先までの天気を表示するようにしました。(北海道寒すぎでは)
これで帰宅前の傘の心配はありませんね!
また、ここには表示しきれなかったのですが、レスポンスの中身がバラエティー豊富過ぎて感動しました!(参考記事を下記に記載)これは使い方次第でもっと面白いことに使えそう・・・!

参考:Dark Sky APIを使ってみました!
https://knowledge.moshimore.jp/entry/dark_sky_api
おすすめ度:★★★★★

最後に

今回はチャットボットと相性がよいAPIに焦点を絞って紹介させていただききました。
メンバーが導入したAPIを使っているところを見るとほっこりした気持ちになりますね。

あまり記事を書く機会がないので、稚拙な内容だったかもしれませんが、これもまた一つの経験としてステップアップに繋がればいいな(淡い期待)と思います。

ここまでお読みいただきありがとうございました!

ともに世界をアップグレードできる、そんな日を夢見て。
Upgrade the World!