Note初級・中級のエンジニアやデザイナー向けに技術情報と英語学習情報を提供中。CommentSlackにチャットするだけで為替レートを教えてくれるChatbotをPythonで作ろう流行りのChatbotはいろいろな可能性を秘めています。流行っているのにはわけがあるのです。今回はSlackというチャットサービス上で、チャットするだけでボットが為替レートを教えてくれるChatbotをPythonで作ってみましょう。関連記事はじめに以下の以前の記事でChatfuelというサービスを使ったChatbotの作成方法について紹介しました。ChatfuelでFacebookメッセンジャーを使うChatbot簡単入門これはサービスなのでコーディング無しで簡単にChatbotが作れたわけですが、エンジニアからすると物足りないですよね。いうことで、今回はPythonで実際にコーディングしながら、Slackにチャットするだけで為替レートを教えてくれるChatbotを作ってみましょう。Pythonはインストールされている前提で進めます。インストール方法を知りたい人はこちらの記事を参考にして下さい。Slackに登録するSlackは仕事でよく使われるチャットサービスです。HipChatなどと比べると後発組になるので、デザインがオシャレで使いやすいです。デスクトップアプリはElectronで作られているのは以前の記事でお伝えしましたね。それでは、Slackに登録していきましょう。Slackのサイトに行き、「Slackを始める」から「ワークスペースを新規作成」を選択します。ワークスペース名はチームで共有するチャットルームの名前ですが、今回はあなたとChatbotの会話になるので、好きな名前をつければ良いと思います。後は自分の名前とメールアドレスを登録すれば完了です。チームでの活動を前提とした作りなので他の人を招待するように促されますが、招待はしてもしなくても構いません。SlackにBotsを登録する次に、ワークスペースにログインし、「アプリを検索する」をクリックしましょう。アプリ一覧の検索画面が表示されるので、「bots」と入力して下さい。上に出てきたのが今回使う「Bots」というアプリです。「インストール」をクリックしましょう。続いて「設定を追加」をクリックします。「ユーザ名」はワークスペースに表示されるChatbot自体の名前になりますので、自由に決めてください。ユーザ名の入力が終わったら「ボットインテグレーションを追加する」をクリックします。SlackとBotsとのインテグレーションが完了すると、APIトークンが払い出されますので、メモしましょう。これでSlack側の設定は完了です。slackbotのインストール今回はSlackのChatbotを実装するためにslackbotを使用します。それでは、Pythonで仮想環境を作って、インストールしていきましょう。slackbotこれでインストールは完了です。初期設定をするインストールが終わったので、初期設定をしましょう。フォルダとファイルを作るまずは、今回必要なフォルダとファイルを作成します。files設定ファイルを書く「slackbot_settings」を書きましょう。このファイルは、プロパティ値を書くためのファイルです。「API_TOKEN」に先程SlackのBotsの「インテグレーションの設定」で確認した「APIトークン」を記載して下さい。「DEFAULT_REPLY」はチャット上でメッセージを受け取った際に取るべきアクションがない場合に返却されるメッセージです。Siriで言うところの「すみません、よくわかりません。」というメッセージのことです。「PLUGINS」は特定のフォルダを指定することで、そのフォルダ内のファイルを自動的に読み込んでくれる設定です。['plugins']「run.py」を書きましょう。このファイルは、slackbotを実行するためのスクリプトです。main()為替レートの取得とメッセージを実装するそれでは、メインのコーディングに入ります。為替レートを取得するAPIですが、当初は以前使っていたYQLからYahoo!ファイナンスのデータを取得しようと思ったのですが、これは現在は動いていないです。代わりに、FloatRatesのAPIを使います。データの取得は一日2回と書いてあるので、取得頻度が多い場合は向きませんが、今回は今日の為替レートが分かれば良いので、これを使います。Pythonでコーディング「exchange_rate_bot」の中身をコーディングしましょう。コーディングするとこうなります。円とアメリカ・ドルのレートと円とカナダ・ドルのレートを取得しています。「@respond_to」にチャットで聞く際のメッセージ(今回は「rates」)を記載し、「message.reply」で返答となるメッセージを設定しています。Slackでチャットして動作確認する最後に動作確認をしていましょう。run.pyを実行してslackbotを起動します。starting...すると、ワークスペースでmybotの起動を確認できます。それでは、mybotにチャットしてみましょう。mybotとのチャットページで「rates」と入力すると、今日の為替レートが返却されます。前から思っていましたが、カナダ・ドルのレートを見ると円高なんじゃないかと錯覚しますよね(笑)アメリカ・ドルと比べてお得感があるというか。それはさておき、便利なボットなので、チームのみんなにも紹介してあげましょう。いうことで、mybotを「#general」に招待します。すると、「#general」で誰でもmybotに為替レートを聞くことができます。返却される為替レートの結果は同じになりました。これは、最初に記載した通り、このAPIは一日2回のデータ更新なので、続けて実行しても結果は同じです。それにしても律儀に毎回教えてくれるなんて、親切なボットができましたね。最後にいかがでしたか?Slackを使って為替レートを教えてくれるChatbotは楽しんでいただけましたか?天気予報やニュースと言った便利な情報を取得して教えてくれるボットや、ChatOpsなどのような何かアクションを代わりに実行してくれるようなボットなど、応用する範囲はいろいろあるので、試してみると面白いでしょう。最新の記事Keid自由で楽しい世界を目指すフルスタックWebデベロッパー。大学でコンピュータサイエンスを真面目に学び、日本の大手IT企業に就職後、新しい技術やスケールするビジネスが北米にある事に気づき、海外への挑戦を決意。英語ができなかっため、フィリピン留学およびカナダ留学を経て強制的に英語を上達させた。このブログでは海外に挑戦したいエンジニアやデザイナーに少しでも有益な情報を提供していきたいと思う。Electronが面白くて仕方がないです。基本機能実装編アメリカの友人と初めて職業について話していた時のことです。ビルド編Congratulations!!ここまでお疲れ様でした。最近はITの情報は全て英語で仕入れるようになりました。英語ができるからではありません。APIを使った音声機能実装編コーヒー豆が尽きた時にインスタントにするのですが味気ない。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。AuthorKeid自由で楽しい世界を目指すフルスタックWebデベロッパー。大学でコンピュータサイエンスを真面目に学び、日本の大手IT企業に就職後、新しい技術やスケールするビジネスが北米にある事に気づき、海外への挑戦を決意。英語ができなかっため、フィリピン留学およびカナダ留学を経て強制的に英語を上達させた。このブログでは海外に挑戦したいエンジニアやデザイナーに少しでも有益な情報を提供していきたいと思う。バッチで明日の日付を計算する。0.0010このブログの運営のためにBitcoinでの寄付を募集しています。お気持ち程度の寄付を頂けると管理者の励みになります。最新の記事Keid自由で楽しい世界を目指すフルスタックWebデベロッパー。大学でコンピュータサイエンスを真面目に学び、日本の大手IT企業に就職後、新しい技術やスケールするビジネスが北米にある事に気づき、海外への挑戦を決意。英語ができなかっため、フィリピン留学およびカナダ留学を経て強制的に英語を上達させた。このブログでは海外に挑戦したいエンジニアやデザイナーに少しでも有益な情報を提供していきたいと思う。Electronが面白くて仕方がないです。基本機能実装編アメリカの友人と初めて職業について話していた時のことです。ビルド編Congratulations!!ここまでお疲れ様でした。最近はITの情報は全て英語で仕入れるようになりました。英語ができるからではありません。APIを使った音声機能実装編コーヒー豆が尽きた時にインスタントにするのですが味気ない。