シンジです。会社や自宅で「歩かずに」ポケモンGOをやってるときって、起動させっぱなし画面付けっぱなしでヤリスギ感が半端ないので、近くにポケモンが出現したらSlackに通知させてお手軽にゲットしちゃおうという話です。
とりあえずソースはこちら
Send Slack notifications whenever a Pokémon spawns nearby using a Pokémon GO SlackBot
https://www.themarketingtechnologist.co/pokemon-go-slack-notifications/
Slack連携できるとこんな感じ
とりあえずSlackに通知が来ます。ポケモンの名前が英語表記になってますが、これは後ほど説明します。
ほっほーと思いながらおもむろにリンクをクリックするとPOKEVISONの地図が出ます。
そして突如訪れる世界平和。
セットアップ方法
AWSでEC2立てて下さい。Amazon Linux使いましょう。もろもろ初期設定すませたらセットアップ開始です。
git使うので入れます
sudo yum install git
gcc使うので入れます
sudo yum install gcc
プログラム本体をゲットだぜ
git clone https://github.com/rubenmak/PokemonGo-SlackBot.git
チェンジディレクトリだぜ
cd PokemonGo-SlackBot/
必要なあれこれをインストールする
sudo pip install -r requirements.txt
Slack連携プログラムのセットアップは以上で完了。
ポケモンGOのアカウントを用意する
ポケモントレーナークラブで新規アカウントを作った方が良いです。Googleアカウント連携版でもプログラムは動作しますが、引数指定が面倒なので普通にアカウント作って下さい。
SlackのIncoming Webhookを用意する
URL発行したらどっかにメモっておいて下さい。
ポケモンを探す中心となる拠点の経度と緯度を調査する
Google Mapを使ってみます。とりあえず住所などで拠点を表示しましょう。今回は虎ノ門ヒルズにしてみました。
赤いピンを右クリックすると「この場所について」と出るので、それをクリックします。そうすると、
下のほうにこんな感じで詳細が出てきます。
使うのは、「35.667047 139.749596」です。カンマ要らないです。
準備完了!あとは起動するだけ
引数がいっぱいありますので解説します。
python pokeslack.py -u ポケモンGOのユーザー名 -p と、パスワード -l "35.667047 139.749596" -st 1 -r 探したい距離の数字入れます。50メートルなら50 -sw https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXXXX/xxxxxxxxxxxxxxxxxxxxxx
-u の後ろには、ポケモントレーナークラブのユーザー名を入れます。
-p の後ろには、ポケモントレーナークラブのパスワードを入れます。
-l の後ろには、経度と緯度を入れます。
-r の後ろには、ポケモンを探したい距離をメートルで数字を入れます。100mで探したいなら100って入れます。
-sw の後ろには、SlackのIncoming WebhookのURLをそのまま書いてあげます。
python pokeslack.py -u username -p password -l "35.667047 139.749596" -st 1 -r 1000 -sw https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXXXX/xxxxxxxxxxxxxxxxxxxxxx
こんなかんじ。
フォアグラウンドで起動してくるので、何度かテストして問題無さそうなら、バックグラウンドにするのがオススメ。
ポケモンの名前を日本語にしたいよね?
できるんですが、面倒なので誰かやってもらえませんかwww
追記・対応しました!jaがあるはずです
cd locales/
すると、中には
pokemon.de.json pokemon.ja.json pokemon.en.json pokemon.fr.json pokemon.zh_cn.json
5つのファイルが確認出来ます。
プログラム本体の利用言語を変更するためには2通りあって、簡単なのは引数指定。本体プログラムpokeslack.py起動時に
-L ja
を追加すれば良いです。もしくは、
pokeslack.py
の、581行目
default="en"
のenを、jaにすればOKってわけです。そうするとこんなかんじで。
追記・ポケモンのアイコンに対応させる方法
名前だけだと味気ないので、アイコンをポケモンにしてしまおうという試みです。これ、日本語だとおかしな事になるうえに準備がちょっと面倒ですし、Slackがシングルサインオンの場合は対応出来ません。
環境を整えます
sudo yum install gcc-c++ make sudo yum install openssl-devel git clone --depth=1 -b v0.12.7 git://github.com/nodejs/node.git cd node ./configure make sudo make install sudo su - visudo
で、以下の通りに変更
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
続き。
cd ../ git clone --depth=1 -b v2.11.3 https://github.com/npm/npm.git cd npm sudo make install sudo npm update -g npm cd ../
ポケモン絵文字セットをインストール
sudo npm install -g emojipacks sudo vi /usr/local/bin/emojipacks
で、以下の通りに変更
#!/usr/local/bin/node --harmony
よし起動
emojipacks
いろいろ聞かれますので回答していきます。
- Slack Subdomain
アイコンを登録したいSlackのチームドメイン -
Email address login
Slackのユーザーのメールアドレス -
Password
上のSlackのユーザーのパスワード -
Path or URL of Emoji yaml file
これコピペしてください。
あとは引数指定して起動です
長ったらしい起動コマンドの末尾に、
-pi ':pokemon-'
これ入れて起動することで絵文字が出ます。
というわけで鳥ポケモンばかりゲットしているシンジは
焼き鳥屋でも始めようかと思います。