PythonPythonでSlackBotを開発しよう企画の第4回目。今回は、仮想通貨情報を教えてくれる機能を実装していきます。「特定の仮想通貨の価格チャート推移画面スクリーンショットをSlack投稿してくれる」機能を実装していきます。CoinGeckoダッシュボード画像Slack送信*Botアプリケーションのファイルは、PythonでSlackBot開発3で実装した状態であることを前提にしています。CoinGeckoのダッシュボードは登録した場合のみ利用できるっぽいので、以下のコードを動かしてみたい方は事前に登録しておきましょう。今回はseleniumとphantomjsを利用したいので、以下のコマンドでライブラリをインストールして、requirements.txtにライブラリのバージョンを記載しておきます。requirements.txt利用するライブラリのインストールができたら、run.pyファイルを編集しています。Coingeckoにログインするためのメアド、パスワードを取得して、ログインします。ページが完全に読み込まれるまでの時間を加味して最大5秒間待ち、スクリーンショットを保存して、画像をpost。Coingeckoにログインして、ダッシュボード画面のスクリーンショットを撮影してSlackに画像を送信しています。COING_EMAIL_ADDRESSとCOING_PASSWORDの値をHerokuに登録していない状態だと変数が読み取れずエラーになってしまうので、Herokuの設定画面から登録していきます。PhantomJSをHerokuのアプリケーション内に用意する必要があるので、PhantomJSとPythonの両方のbuildpackを使えるbuildpack-multiを使えるように以下のコマンドで設定をしておきます。LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/lib:/app/vendor/phantomjs/libbuildpackの設定が追加されていることが確認できました。buildpackの設定ができたら、.buildpacksファイルを作成し、以下のように記述します。.buildpackshttps://github.com/heroku/heroku-buildpack-python.githttps://github.com/stomita/heroku-buildpack-phantomjs.git以上で実装は完了です。以下のコマンドでherokuにlocalの変更内容を反映させ、herokuアプリケーションを再起動します。restartこれでアプリケーションにも反映されたはずです。Slackで実際に話しかけてみます。読み込みが遅いのか、通貨の種類が全然表示されていませんが、なんとかスクショを送信することができています。4つしか表示されないのはさすがに悲しすぎるので、いずれ直します...。Schedulerでプログラム定期実行」PythonでSlackBotを開発しよう企画の第8回目。リファクタリングしてたらハマったことPythonのSlackBot開発でリファクタリングを進めていたら、色々...2018-04-08PythonでSlackBot開発5「DocomoAPIで雑談機能追加」PythonでSlackBotを開発しよう企画の第5回目。積極的にさぼるために頑張る25歳Webエンジニアのブログ。プログラミング・エンジニアのスキルアップ・ブログ運営についてよく書きます。@virtual_techXプログラムとか技術の話はQiitaでよく書いてます。Webエンジニア向けです。virtual_techXはてなブログをはじめよう!virtual-surferさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。