最近、botが急激に流行ってきているなぁと感じます。LINEやFacebook、SkypeなどでもAPIを提供し始めています。Trialが無料で利用できたのでつられてみました。いえ、botを具体的に何に使うかを全く考えていなかったのでとりあえず好きなものに関するbotを作ろう!ということでグルコスを対象に選びました。Coaster(グルーヴコースター)、海外ではRHYTHMVADERSという名前のタイトーの音楽ゲームです。最近バージョン3になり、オンライン対戦が追加されたので楽しいです。実際の動作LINE上で位置情報を送信すると、その位置を原点として最も近くに位置しているゲーセンかつグルコスが設置してあるゲーセンをリストしてくれます。APIを利用するには開発者登録をする必要があります。現時点で1万名を超えてしまったようで新規でTrialを利用することはできないのでこの辺りは割愛します。botを登録すると、以下の様なAPIアクセスに関する情報が表示されます。botがアマデウス紅莉栖である理由は特にありません。あとはこれらを使って開発するのみです。URLはSSL通信でないといけません。URLは「https://example.com:443/callback」と明示的にSSL通信であることを指定しなければいけません。最初は自宅サーバで色々やろう!と考えていたのですが、少し厳しそうだったので、今回はHerokuを使っています。その辺りはこちらの記事が参考になりました。今回は練習も兼ねてJavaScriptとNode.js、Expressで開発しています。でたらめに書いているので相当汚いですが、リポジトリは以下にあります。github.comどんな動作をしているかを簡単に解説すると、まず、位置情報が送られてきたら、その住所から都道府県を切り出しています。その都道府県を使ってNESiCAのURLを叩き、スクレイピングすることでその都道府県のグルコスが設置してあるゲーセンとその住所をすべて取得します。ジオコーダAPIを叩いて緯度・経度を取得します。最後に原点の緯度・経度とゲーセンの緯度・経度を用いて2点間の距離を算出します。それらを距離が短い順に並べ替えています。いざ開発していくと謎のバグに悩まされました。最短距離でも地球1周にかかる距離を超えています。位置情報が送られてきた時、latitudeプロパティとlongitudeプロパティが含まれているのですが、これらの値が逆になっていました。これらを直すことで無事正常に動作しました。完成こうして思ったよりかなりの時間をかけてbotを作りました。自分の住んでいる場所付近のゲーセンを見てみると、バッチリです。見てみると近くのゲーセンはスーパーノバしかないことがはっきり分かります。これでどこでもグルコスができる!本当は位置情報以外が送られた時はdocomoの雑談対話APIを使って会話させようとしていたのですが、最近時間が取れにくいのでひとまず後回しにしましたが、いずれやってみたいと思っています。問題ただ、このbotには問題があります。それは負荷の問題です。ジオコーダAPIを叩くので、そちらの方に結構な負荷がかかると思われます。(このbotを使う人が自分以外いるとは思えないけど...)なのでこのbotはあくまで個人用として作成しましたので公開はしません。エラーが発生するケースLinksTwitterGitHubArchive響け!ユーフォニアム響け!ユーフォニアム2誓いのフィナーレはてなブログをはじめよう!ktr_0731さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。