みなさんポケモンGO楽しんでいますか?

Facebook見ていたら流れてきたこの記事

こちらのサイトの手順を行うとSlackにポケモンのポップの通知が来るそうです。

しかし、こちらで使われているのはAWS!!

というわけでホームグラウンドであるMicrosoft Azureを使ってBotサーバーを作ってみましょう


仮想マシン作成

まずは仮想マシンを作らないといけないので、Azureにログインし、「新規」をクリックした上の段に「CentOS」と打ってEnterを押しましょう。

すると、「CentOS-based 7.2」というのが出てくるので、それをクリックし、右側の画面の下にある「作成」をクリックします。

基本の欄では、仮想サーバのログイン情報などについて入力します。

名前にはこの仮想サーバーの名前(例:pokemongo-slack

ユーザー名にはログイン時に使用するユーザー名

認証の種類は、SSH公開キーの方が後々便利だったりするので、こちらのほうがおすすめですが、公開鍵がわからない人はパスワードを選んでください。 (SSH公開キーの手順はここでは解説しません)

リソースグループは、今回仮想サーバーを作成するにあたり、副次的に作られる様々なインスタンスをひとまとめに管理するための名前です。

名前と同じで問題無いでしょう。

場所は東日本か西日本を選べばアクセス時の面で早いですが、今回の使用用途であれば米国西部の方でも問題なく、さらに安上がりになります。

次のサイズ選択では、一番安い価格(A0)を選べば十分です (画像の値段は変わる可能性があります。)

次の設定では、特にいじる箇所はないのでOKを押してください。

最後に、OKを押せばデブロイが開始します。


Botのインストールまで

次はBotを起動するまでをやります。

まず、SSHで使用して仮想サーバーへログインしてください

次に必要な物一式をインストールします。

1
sudo yum install git gcc python-devel tmux

仮想サーバー作成時にパスワードを設定した場合はパスワードが聞かれますので、そのパスワードを入力してください。SSH公開キーを選んだ場合は何も聞かれません。

次に、Botのインストール時に必要なpipをインストールします。

1
curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python

次に、Bot本体のダウンロード・インストールを行います。

7/25現在、本家のリポジトリに日本語名のリソースが含まれていないため、フォーク先のリポジトリからクローンします。

この記事を書いている間に追加されたようです。

1
2
3
git clone https://github.com/rubenmak/PokemonGo-SlackBot.git
cd PokemonGo-SlackBot
sudo pip install -r requirements.txt

次に、起動用のスクリプトを作成します。 PokemonGoのダミーアカウントやSlackへのWebHookの設定、取得する座標の緯度経度はページ初めのサイトを見て準備しておいてください。

1
vi launch.sh

以下の内容を記述

1
python pokeslack.py -u [ポケモントレーナークラブのID] -p [ポケモントレーナークラブのパスワード] -l "[緯度経度]" -st 1 -r [検索する半径] -sw "[SlackのIntegrationURL]" -L ja

最後に、実行できるように権限を付与します。

1
chmod +x launch.sh

tmux上で起動する

起動しっぱでSSHを切断しようとすると、プログラムごと終了しちゃうので、ターミナルマルチプレクサのtmuxを使います。

1
2
tmux new-session
./launch.sh

こうすることで、SSHを切断しても起動させ続けることが出来ます。

ここまでを行えば、ひとまずSlackへ通知が来るまでは完成となります

しかし、上の画像のようにアイコンが出てきていないので、そこを直していきます。


アイコンをポケモンのものにする

emojipacksというものを使い、ポケモンのアイコンを一括登録します

npmが必要なので、以下のコマンドでインストールします

1
2
curl --silent --location https://rpm.nodesource.com/setup_4.x | sudo bash -
sudo yum install -y nodejs

npmのインストールが完了したら、以下のコマンドでemojipacksをインストールします。

1
sudo npm install -g emojipacks

そのまま起動しようとすると、nodeが見つからないと起こられるので、起動スクリプトを編集します。

1
sudo vi /usr/bin/emojipacks

1行目を以下のように変えます

1
#!/usr/bin/node --harmony

そうしたら、以下のコマンドでemojipacksを起動します。

1
emojipacks

いろいろ聞かれるので、全部入力します。

Slack Subdomain は、アイコンを登録したいSlackのチームドメイン Email address login は、アイコンを登録させるために使用するユーザーのアドレス Password は上のユーザーのパスワード Path or URL of Emoji yaml file は、https://raw.githubusercontent.com/templarian/slack-emoji-pokemon/master/pokemon-prefix.yaml

すると、自動的にインポートが始まります。

インポートが終わったら起動用スクリプトのlaunch.shを開き、

1
2
#!/bin/sh
python pokeslack.py -u [ポケモントレーナークラブのID] -p [ポケモントレーナークラブのパスワード] -l "[緯度経度]" -st 1 -r [検索する半径] -sw "[SlackのIntegrationURL]" -L ja -pi ':pokemon-'

といった感じに末尾に-pi ':pokemon-'を付け加えてください。

すると、投稿されるアイコンがポケモンに変わっているはずです。


大分長くなってしまいましたが、これでSlackに家の近くのポケモンが湧いたら通知が来るようになりました!