4月16日だからfoursquare 位置情報とライフログ

18
4 16 日だから Foursquare 位置情報とライフログ OGATA Tetsuji (@xtetsuji) 2015/04/16 Tokachi Developer’s Night #1

Upload: tetsuji-ogata

Post on 17-Jul-2015

530 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 4月16日だからFoursquare 位置情報とライフログ

4月16日だからFoursquare 位置情報とライフログ

OGATA Tetsuji (@xtetsuji) 2015/04/16 Tokachi Developer’s Night #1

Page 2: 4月16日だからFoursquare 位置情報とライフログ

自己紹介

• 尾形 鉄次 (OGATA Tetsuji)

• Twitter: @xtetsuji

• Blog: http://post.tetsuji.jp/

• 音更町出身、東京都中野区在住

• 主にPerlのウェブプログラマーを10年ちょっと

Page 3: 4月16日だからFoursquare 位置情報とライフログ

4月16日はFoursquareの日

Page 4: 4月16日だからFoursquare 位置情報とライフログ

4 (Four) / 16 (Square of four)

Page 5: 4月16日だからFoursquare 位置情報とライフログ

Foursquare / Swarm

• いわゆるロケーションベースサービスの老舗

• 今いる場所を記録してソーシャルメディアでシェア

• 最近はYelp的要素をFoursquareとして新たに切り出して、もともとのチェックインツールをSwarmとした

• 位置情報のライフログ!

Page 6: 4月16日だからFoursquare 位置情報とライフログ

時間と場所のライフログ

• いつどこにいったかの記録

• 時間も一緒に記録しているので嬉しい

• Googleカレンダーで読めるといいのでは?

Page 7: 4月16日だからFoursquare 位置情報とライフログ

iCalファイルを提供しているが

• 実はFoursquareの設定画面でiCalの取得URLがある

• Googleカレンダーに読ませれば最高っぽい!?

• 昔はできたんだけど、今はFoursquare側がGoogleからのファイル取得を拒否しているらしく、できなくなった

• なんで!?(泣)

Page 8: 4月16日だからFoursquare 位置情報とライフログ

Foursquare側の事情

• たぶん、GoogleカレンダーにiCalファイルを設定しているユーザ数が相当数いて、その転送コストが無視できなかった(FoursquareはAWSの上のサービス)

• iCalファイルは、そのユーザの利用開始時からの全てのチェックインデータを送るので、サイズはかなり大きい(自分の場合はgzip圧縮しても600KBだった)

Page 9: 4月16日だからFoursquare 位置情報とライフログ

サポートに質問してみたけど

Page 10: 4月16日だからFoursquare 位置情報とライフログ

IFTTTならいいの!?

• IFTTTとは多くのサービスのAPIを組み合わせるサービス

• 確かにIFTTTにはFoursquareもGoogleカレンダーもある

• IFTTTが毎回取りに行ったら、Foursquare側からしたら変わらないんじゃないのこれ?

Page 11: 4月16日だからFoursquare 位置情報とライフログ

Foursquare APIを調べる• 調べてみるとFoursquare APIにはプッシュ通知がある

• 「イマっぽくJSONでもHTTP POSTされてくるのかな」という予想であっていた

• チェックインだけでなくLikeやTips投稿など、認証したユーザのあらゆる情報が流れてくるらしいので、必要なものだけを受けて備蓄すればいいっぽい

• https://developer.foursquare.com/overview/realtime#format

Page 12: 4月16日だからFoursquare 位置情報とライフログ

まだ全然できていないのですが• コンセプトとしては、一度認証してしまえば、所定の

URLにJSONテキストがPOSTリクエストで送りつけられるだけなので、DBに入れるように整形するなりなんなりで良い感じ

• 認証の部分はOAuth2なので、まぁそれなりにやろう

• FoursquareのサーバからこちらにHTTPリクエストがくるので、テストサーバは外部からアクセス可能にする

Page 13: 4月16日だからFoursquare 位置情報とライフログ

Foursquareの各種データ取得

• アプリケーションを登録時にOAuth2のClient Secretは取得できているはずなので、それがあれば後は使うプログラミング言語のAPIバインディングを使えば楽

• PerlにはWWW::Foursquareというのがある

• 「あるよねきっと」と思う心が重要で、利用させてもらってどんどん楽をしていこう

Page 14: 4月16日だからFoursquare 位置情報とライフログ

開発方針を考える

• OAuth2認証で数ページあればいいので、Viewは好み

• Modelも至極簡単なので、ORマッパーを使うかは好み

• Perlだと「素のPlack + DBI + JSON::PP」くらいでいい

• UTF-8だけど任意のUTF-8文字がやってくることを考えたら、MySQLだとutf8mb4にしといたほうがいいかな

Page 15: 4月16日だからFoursquare 位置情報とライフログ

物事は単純に考える

• 最初からスケールするようにとか考えるとスピード感が出ない(だいたいの場合においてユーザ数は増えない)

• 100人規模で間に合うプロトタイプっぽいのを作って、それに収まりきらなくなったら作りなおしでいいよね

• 中規模大規模開発手法を学ぶことも大事ではある

Page 16: 4月16日だからFoursquare 位置情報とライフログ

IFTTTのイケてないところ

• 「IFTTTでいいんじゃないの?」

• Googleカレンダー連携の設定は、一つのカレンダーしか選べないというか、これに尽きるんですよね

• IFTTT、有料プランで複数のアカウントなりを選べるようにするって話もあるので、今後に期待したいです

Page 17: 4月16日だからFoursquare 位置情報とライフログ

これから作ります

• Foursquareの日、Tokachi Developers Night #1に間に合わなくてごめんなさい

• 作ったら @xtetsuji などでお知らせします

• Foursquare で楽しい時間と場所のライフログを!

Page 18: 4月16日だからFoursquare 位置情報とライフログ

おしまい