指定した場所にポケモンが現れたらSlackに通知させる

ポケモンGOが異常な人気なようで。ただ常時アプリを起動しているのはバッテリー的に厳しいので、近くにポケモンが現れたら通知してくれるサービス無いかなと思っていたらナイスなタイミングでQiitaにこんな記事がアップされてました。

オフィス周辺にポケモンが現れたら Slack チャンネルに通知するようにした – Qiita

おーこれ良いじゃん!と思って早速試そうと思ったらすでにpokego-scanのパッケージが消えてた。。。

CLOSED PROJECT DISCLAIMER

I’m closing this project, since PokeVision has kept asking me to do so. I built it for fun, and since they are against people using their internal API this way, I don’t feel comfortable making it publicly available anymore. Apologies to everyone using it.

I’m not sure about the proper etiquette for deleting active projects from GitHub, so I’m leaving this readme to let everyone using it know.

via:dgoguerra/pokego-scan: Scan pokemon through PokeVision’s API

何か他に同じようなもの無いかなと思って色々と探してみたところ、考えている人はたくさんいるようで結構ありました。その中でも導入が簡単そうな以下の方法を試してみました。

Get Pokemon Go notifications by using Slack

事前に決めておいた場所(自宅とか学校とか会社とか)にポケモンが現れたらSlackに通知してくれるようです。しかも同種のサービスとは違いdockerfileを用意してくれているので、Docker上で動作できる模様。これは便利そう!!ってことで早速試してみます。

導入方法

Dockerイメージの作成と起動

まずはGitHubにあるリポジトリをローカルにクローンします。

cd projects
git clone git@https://github.com/rubenmak/PokemonGo-SlackBot.git

クローンしたDockerfileを使って、DockerイメージをBuildします。

$ docker build -t pokemongo/pokemongo ./
Sending build context to Docker daemon 24.57 MB
Step 1 : FROM python:2.7
 ---> b5c7fb15c9cb
Step 2 : ENV PROJECT_HOME /opt/PokemonGo-SlackBot
 ---> Using cache
 ---> 4827194948a5
Step 3 : ADD . $PROJECT_HOME
 ---> Using cache
 ---> 44dd8de93d77
Step 4 : WORKDIR $PROJECT_HOME
 ---> Using cache
 ---> 02ad3a0916e4
Step 5 : RUN pip install -r requirements.txt
 ---> Using cache
 ---> a441f0fe2ede
Step 6 : EXPOSE 5000
 ---> Using cache
 ---> 3d91a902276f
Successfully built 3d91a902276f

$ docker images
REPOSITORY                               TAG                 IMAGE ID            CREATED             SIZE
pokemongo/pokemongo                      latest              3d91a902276f        21 minutes ago      763.4 MB

コンテナを起動します。

docker run -dit --name pokemon-slack pokemongo

ポケモントレーナークラブのアカウントを準備する

Googleアカウントかポケモントレーナークラブのアカウントが必要になるので、どちらかを準備しておきます。私は新規でポケモントレーナークラブを作成して使うことにします。

ポケモントレーナークラブ | Pokemon.com

Slack APIのIncoming Webhooksを準備する

結果をSlackに上げるために、Slack APIのIncoming Webhooksを準備します。

Slackにログインして、左にあるメニューから「Apps & integrations」をクリック。

pokemon

検索フォームに「webhook」と入力し、検索結果から「Incoming Webhooks」を選択。

App Directory

「ADD configration」をクリック。

Incoming WebHooks

投稿させたいチャンネル名を選択。

Incoming WebHooks

Webhook URLが表示されるのでメモしておきます。

Incoming WebHooks

ポケモンを探したい場所の緯度と経度を入手する。

Google Mapを使って緯度と経度を調べます。場所を決めてから赤いピンを「右クリック」 → 「この場所について」をクリック。

上野恩賜公園 - Google マップ_ma1zd

緯度と経度が分かりました。

上野恩賜公園 - Google マップ_m2pmw

さっそく動かしてみる

以上で準備が出来ましたので、さっそく動作するか試してみましょう。まずは、コンテナにログインします。

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f3820269680d        3d91a902276f        "python2"           43 minutes ago      Up 43 minutes       5000/tcp            pokemon-slack

$ docker exec -it pokemon-slack bash
root@f3820269680d:/opt/PokemonGo-SlackBot#

無事にログインできました。ここで以下のコマンドを実行します。

$ python pokeslack.py -u [ユーザ名] -p [パスワード] -l "[緯度] [経度]" -st 1 -r 1000 -sw [Webhook URL]

場所を上野公園にして、中心から半径250m内に現れるポケモンを通知してみます。

$ python pokeslack.py -u [ユーザ名] -p [パスワード] -l "35.715285 139.773285" -st 1 -r [ポケモンを探したい距離(メートル)] -sw https://hooks.slack.com/services/xxxxxxxxx/xxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxx

Slack_nl193

わんさか出てきました。リンクをクリックすると地図が表示されます。

PokéVision — Find, locate and track Pokemon near you or anywhere in the world live & realtime in Pokemon GO!_94c8f

ポケモンの名前を日本語表示にする

デフォルトだとポケモンの名前が英語表示なのですが、起動時に「-L ja」オプションを加えると日本語表示になります。

$ python pokeslack.py -u [ユーザ名] -p [パスワード] -l "35.715285 139.773285" -st 1 -r [ポケモンを探したい距離(メートル)] -sw https://hooks.slack.com/services/xxxxxxxxx/xxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxx -L ja

無事に日本語表記になりました!

Slack_q0mst

ポケモンのアイコン表示

ポケモンのアイコンを表示させることもできるようです。

Templarian/slack-emoji-pokemon: Slack Pokemon Emojis

事前準備

まずはvimインストール。

$ apt-get install vim

nvmをインストール。

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.18.0/install.sh | bash
$ echo "source ~/.nvm/nvm.sh" >> ~/.profile
$ source ~/.nvm/nvm.sh

nodeのバージョンは0.11以上が必要なので、バージョンを指定してインストールします。

$ nvm install 0.11

emojipacksをインストール。

$npm install -g emojipacks

$ which node
/root/.nvm/v0.11.16/bin/node

emojipacksの設定変更。

vim /usr/local/bin/emojipacks

一番上の行を以下に変更。

#!/root/.nvm/v0.11.16/bin/node --harmony

emojipacks実行。いくつか聞かれるので以下のように入力。

$ 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

「-pi ’:pokemon-’」オプションを付けて実行します。日本語表記だとうまく動かないので日本語表記オプションは外しています。

$ python pokeslack.py -u [ユーザ名] -p [パスワード] -l "35.715285 139.773285" -st 1 -r [ポケモンを探したい距離(メートル)] -sw https://hooks.slack.com/services/xxxxxxxxx/xxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxx -pi ':pokemon-'

Slack_792ky

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください