4月16日だからfoursquare 位置情報とライフログ
TRANSCRIPT
4月16日だからFoursquare 位置情報とライフログ
OGATA Tetsuji (@xtetsuji) 2015/04/16 Tokachi Developer’s Night #1
自己紹介
• 尾形 鉄次 (OGATA Tetsuji)
• Twitter: @xtetsuji
• Blog: http://post.tetsuji.jp/
• 音更町出身、東京都中野区在住
• 主にPerlのウェブプログラマーを10年ちょっと
4月16日はFoursquareの日
4 (Four) / 16 (Square of four)
Foursquare / Swarm
• いわゆるロケーションベースサービスの老舗
• 今いる場所を記録してソーシャルメディアでシェア
• 最近はYelp的要素をFoursquareとして新たに切り出して、もともとのチェックインツールをSwarmとした
• 位置情報のライフログ!
時間と場所のライフログ
• いつどこにいったかの記録
• 時間も一緒に記録しているので嬉しい
• Googleカレンダーで読めるといいのでは?
iCalファイルを提供しているが
• 実はFoursquareの設定画面でiCalの取得URLがある
• Googleカレンダーに読ませれば最高っぽい!?
• 昔はできたんだけど、今はFoursquare側がGoogleからのファイル取得を拒否しているらしく、できなくなった
• なんで!?(泣)
Foursquare側の事情
• たぶん、GoogleカレンダーにiCalファイルを設定しているユーザ数が相当数いて、その転送コストが無視できなかった(FoursquareはAWSの上のサービス)
• iCalファイルは、そのユーザの利用開始時からの全てのチェックインデータを送るので、サイズはかなり大きい(自分の場合はgzip圧縮しても600KBだった)
サポートに質問してみたけど
IFTTTならいいの!?
• IFTTTとは多くのサービスのAPIを組み合わせるサービス
• 確かにIFTTTにはFoursquareもGoogleカレンダーもある
• IFTTTが毎回取りに行ったら、Foursquare側からしたら変わらないんじゃないのこれ?
Foursquare APIを調べる• 調べてみるとFoursquare APIにはプッシュ通知がある
• 「イマっぽくJSONでもHTTP POSTされてくるのかな」という予想であっていた
• チェックインだけでなくLikeやTips投稿など、認証したユーザのあらゆる情報が流れてくるらしいので、必要なものだけを受けて備蓄すればいいっぽい
• https://developer.foursquare.com/overview/realtime#format
まだ全然できていないのですが• コンセプトとしては、一度認証してしまえば、所定の
URLにJSONテキストがPOSTリクエストで送りつけられるだけなので、DBに入れるように整形するなりなんなりで良い感じ
• 認証の部分はOAuth2なので、まぁそれなりにやろう
• FoursquareのサーバからこちらにHTTPリクエストがくるので、テストサーバは外部からアクセス可能にする
Foursquareの各種データ取得
• アプリケーションを登録時にOAuth2のClient Secretは取得できているはずなので、それがあれば後は使うプログラミング言語のAPIバインディングを使えば楽
• PerlにはWWW::Foursquareというのがある
• 「あるよねきっと」と思う心が重要で、利用させてもらってどんどん楽をしていこう
開発方針を考える
• OAuth2認証で数ページあればいいので、Viewは好み
• Modelも至極簡単なので、ORマッパーを使うかは好み
• Perlだと「素のPlack + DBI + JSON::PP」くらいでいい
• UTF-8だけど任意のUTF-8文字がやってくることを考えたら、MySQLだとutf8mb4にしといたほうがいいかな
物事は単純に考える
• 最初からスケールするようにとか考えるとスピード感が出ない(だいたいの場合においてユーザ数は増えない)
• 100人規模で間に合うプロトタイプっぽいのを作って、それに収まりきらなくなったら作りなおしでいいよね
• 中規模大規模開発手法を学ぶことも大事ではある
IFTTTのイケてないところ
• 「IFTTTでいいんじゃないの?」
• Googleカレンダー連携の設定は、一つのカレンダーしか選べないというか、これに尽きるんですよね
• IFTTT、有料プランで複数のアカウントなりを選べるようにするって話もあるので、今後に期待したいです
これから作ります
• Foursquareの日、Tokachi Developers Night #1に間に合わなくてごめんなさい
• 作ったら @xtetsuji などでお知らせします
• Foursquare で楽しい時間と場所のライフログを!
おしまい