
2010年2月15日
ポストTwitterとして名高い、foursquare。私も大注目しています。
このfoursquare、APIを一般に公開していて、チェックインからチップスの追加まで、すべての機能を利用することが出来ます。そこで、早速サンプルプログラムを作ってみました。不安定かもしれませんが、こちらからどうぞ。
では、軽く解説を。
APIのマニュアルはこちらにあります。また、@fawさんが、日本語訳もしてくれています。
OAuthを使った方法もあるのですが、ちょっと難しいので、ここでは BASIC認証を使う方法を試しました。 まずはログインと、候補の取得。これには「venues」というメソッドを使います。ここに、GETで緯度・経度やログイン情報を送り込むのですが、CakePHPではHTTP通信を行うために「CakeSocket」というものが準備されているので、これを使います。次のような感じ。
uses('http_socket', 'Xml');
$socket = new HttpSocket();
$url = 'http://api.foursquare.com/v1/venues';;
$query = array(
'geolat'=>$this->data['Clip']['lat'],
'geolong'=>$this->data['Clip']['lon']
);
$res = $socket->get($url, $query, array(
'auth' => array(
'user' => $this->data['Clip']['username'],
'pass' => $this->data['Clip']['password']
)
));
// get XML
$xml = new Xml($res);
これで「$xml」にXMLの解析したものが出るので、これでリストを構築して行きます。 チェックインには、Venue IDと呼ばれる、場所ごとに割り振られたIDを渡すので、これをラジオボックスなどで渡しながら「shout(つぶやき)」を渡して、今度は「checkin」メソッドを使います。
uses('http_socket', 'Xml');
$socket = new HttpSocket();
if ($this->data) {
$url = 'http://api.foursquare.com/v1/checkin';;
$query = array(
'vid' => $this->data['Clip']['id'],
'shout' => $this->data['Clip']['shout']
);
$res = $socket->post($url, $query, array(
'auth' => array(
'user' => $user['Clip']['username'],
'pass' => $user['Clip']['password']
)
));
$this->render('thanks');
}
これでOK。チェックインすることが出来ます。
これを使えば、好きな場所をチェックインすることができちゃいます。 アリバイ工作などに使わないよう、ご注意ください。(笑
ダウンロードはこちらからどうぞ。
Tweetエイチツーオー・スペースの最新情報をメールまたはRSSでお受け取りいただけます。ぜひご利用ください。
この記事へのコメント
トラックバック