ポケモンGOで自分の近くにポケモンが出現したらSlackに通知する




pasted_image_at_2016_07_22_05_24_pm-1469201215067

シンジです。会社や自宅で「歩かずに」ポケモン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に通知が来ます。ポケモンの名前が英語表記になってますが、これは後ほど説明します。

pokemongo-slack-01

ほっほーと思いながらおもむろにリンクをクリックするとPOKEVISONの地図が出ます。

pokemongo-slack-02

そして突如訪れる世界平和。

セットアップ方法

AWSでEC2立てて下さい。Amazon Linux使いましょう。もろもろ初期設定すませたらセットアップ開始です。

git使うので入れます

[bash] sudo yum install git
[/bash]

gcc使うので入れます

[bash] sudo yum install gcc
[/bash]

プログラム本体をゲットだぜ

[bash] git clone https://github.com/rubenmak/PokemonGo-SlackBot.git
[/bash]

チェンジディレクトリだぜ

[bash] cd PokemonGo-SlackBot/
[/bash]

必要なあれこれをインストールする

[bash] sudo pip install -r requirements.txt
[/bash]

Slack連携プログラムのセットアップは以上で完了。

ポケモンGOのアカウントを用意する

ポケモントレーナークラブで新規アカウントを作った方が良いです。Googleアカウント連携版でもプログラムは動作しますが、引数指定が面倒なので普通にアカウント作って下さい。

SlackのIncoming Webhookを用意する

URL発行したらどっかにメモっておいて下さい。

ポケモンを探す中心となる拠点の経度と緯度を調査する

Google Mapを使ってみます。とりあえず住所などで拠点を表示しましょう。今回は虎ノ門ヒルズにしてみました。

pokemongo-slack-03

赤いピンを右クリックすると「この場所について」と出るので、それをクリックします。そうすると、

pokemongo-slack-04

下のほうにこんな感じで詳細が出てきます。
使うのは、「35.667047 139.749596」です。カンマ要らないです。

準備完了!あとは起動するだけ

引数がいっぱいありますので解説します。

[bash] 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
[/bash]

-u の後ろには、ポケモントレーナークラブのユーザー名を入れます。

-p の後ろには、ポケモントレーナークラブのパスワードを入れます。

-l の後ろには、経度と緯度を入れます。

-r の後ろには、ポケモンを探したい距離をメートルで数字を入れます。100mで探したいなら100って入れます。

-sw の後ろには、SlackのIncoming WebhookのURLをそのまま書いてあげます。

[bash] 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
[/bash]

こんなかんじ。

フォアグラウンドで起動してくるので、何度かテストして問題無さそうなら、バックグラウンドにするのがオススメ。

ポケモンの名前を日本語にしたいよね?

できるんですが、面倒なので誰かやってもらえませんかwww

追記・対応しました!jaがあるはずです

[bash] cd locales/
[/bash]

すると、中には

[bash] pokemon.de.json pokemon.ja.json pokemon.en.json pokemon.fr.json pokemon.zh_cn.json
[/bash]

5つのファイルが確認出来ます。
プログラム本体の利用言語を変更するためには2通りあって、簡単なのは引数指定。本体プログラムpokeslack.py起動時に

[bash] -L ja
[/bash]

を追加すれば良いです。もしくは、

[bash] pokeslack.py
[/bash]

の、581行目

[bash] default="en"
[/bash]

のenを、jaにすればOKってわけです。そうするとこんなかんじで。

pokemongo-slack-05

追記・ポケモンのアイコンに対応させる方法

pokemongo-slack-06

名前だけだと味気ないので、アイコンをポケモンにしてしまおうという試みです。これ、日本語だとおかしな事になるうえに準備がちょっと面倒ですし、Slackがシングルサインオンの場合は対応出来ません。

環境を整えます

[bash] 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
[/bash]

で、以下の通りに変更

[bash] Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
[/bash]

続き。

[bash] 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 ../
[/bash]

ポケモン絵文字セットをインストール

[bash] sudo npm install -g emojipacks
sudo vi /usr/local/bin/emojipacks
[/bash]

で、以下の通りに変更

[bash] #!/usr/local/bin/node –harmony
[/bash]

よし起動

[bash] emojipacks
[/bash]

いろいろ聞かれますので回答していきます。

  • Slack Subdomain
    アイコンを登録したいSlackのチームドメイン

  • Email address login
    Slackのユーザーのメールアドレス

  • Password
    上のSlackのユーザーのパスワード

  • Path or URL of Emoji yaml file
    https://raw.githubusercontent.com/templarian/slack-emoji-pokemon/master/pokemon-prefix.yaml
    これコピペしてください。

あとは引数指定して起動です

長ったらしい起動コマンドの末尾に、

[bash] -pi ‘:pokemon-‘
[/bash]

これ入れて起動することで絵文字が出ます。

というわけで鳥ポケモンばかりゲットしているシンジは

焼き鳥屋でも始めようかと思います。