foursquare API V1が8月から使えなくなっていた事が判明した為、急遽4sqmapをV2対応する事にしました。
4sq map : http://labs.s-koichi.info/4sqmap/
V1時のAPIは、PHPでラップしたI/Fでjsonpに変換したり、OAuthの処理をさせたりしてましたが、認証周りが楽になったV2は、直接APIを呼びだしています。
foursquare API V2のドキュメントはこちら。
OAuth認証は、pure AJAX applicationの項目を参考にしました。
この対応に合わせて、これまで機能使用時にOAuth承認にすすむようにしてましたが、ログイン用のリンクを右上に表示するようにしました。
今回の修正で、一番手間取ったのは、API V1時とデータの構造が違っていた事。ただし、API DocumentsにあるAPI Explorerを使うと、どういう形式でjsonデータが返ってくるか確認出来たので、それを確認しながら地道に修正しました。
例えば、venueデータなんかは、以下のような形式になっています。以前はフラットな構造だったと思いますが、location情報や、contact情報がそれぞれ下位オブジェクトになっています。
{
id: "4b4e564cf964a520f0e926e3"
name: "JR 津田沼駅 (Tsudanuma Sta.)"
itemId: "v4b4e564cf964a520f0e926e3"
contact: {
phone: "0474723065"
formattedPhone: "047-472-3065"
}
location: {
address: "津田沼1-1-1"
city: "習志野市"
state: "千葉県"
postalCode: "275-0016"
country: "日本"
lat: 35.6912616
lng: 140.0204066
distance: 114
}
categories: [
{
id: "4bf58dd8d48988d129951735"
name: "鉄道駅"
pluralName: "鉄道駅"
icon: "https://foursquare.com/img/categories/travel/trainstation.png"
parents: [
"Travel Spots"
]
primary: true
}
{
id: "4bf58dd8d48988d12a951735"
name: "鉄道"
pluralName: "鉄道"
icon: "https://foursquare.com/img/categories/travel/trainstation.png"
parents: [
"Travel Spots"
"Train Stations"
]
}
]
verified: false
stats: {
checkinsCount: 16174
usersCount: 1554
tipCount: 20
}
hereNow: {
count: 6
}
}
今回の対応では、突貫工事だったのでPC版のみ対応。スマートフォン対応版は現在対応中。JQtouchを使っていたのを、JQuery mobileを使ったI/Fに換装中です。
4sq map : http://labs.s-koichi.info/4sqmap/



4sqmapをfoursquare API V2に対応