, OAuth. foursquare, , . , OAuth, API.
//secrets.php
<?php
define('CLIENT_ID', 'YOUR_CLIENT_ID');
define('CLIENT_SECRET', 'YOUR_CLIENT_SECRET');
LOCALHOST//4sq_Login.php
<?php
require_once('secrets.php');
$url = 'https://foursquare.com/oauth2/authenticate';
$url .= '?client_id='.CLIENT_ID;
$url .= '&response_type=code';
$url .= '&redirect_uri=http://localhost/scripts/4sq_Callback.php';
header( 'Location: '.$url ) ;
LOCALHOST//4sq_Callback.php
<?php
require_once('secrets.php');
parse_str($_SERVER['QUERY_STRING'], $query);
$code = $query['code'];
$url = 'https://foursquare.com/oauth2/access_token';
$url .= '?client_id='.CLIENT_ID;
$url .= '&client_secret='.CLIENT_SECRET;
$url .= '&grant_type=authorization_code';
$url .= '&redirect_uri=http://localhost/scripts/4sq_Callback.php';
$url .= '&code='.$code;
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
curl_close($ch);
$values = json_decode($result, true);
$token = $values['access_token'];
$expire = time()+2592000;
setcookie("foursquare_token", $token, $expire, '/');
echo('<script type="text/javascript">');
echo('opener.set4sqKey("'.$token.'");');
echo('self.close();');
echo('</script>');
/index.htm
<!DOCTYPE HTML>
<html>
<head>
<title>FourSquare test page...</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript">
<!--
var foursquareKey;
function get4sqKey(){
if(!foursquareKey){
window.open('scripts/4sq_Login.php', 'foursquareAuth', 'width=960, height=548');
}
}
function set4sqKey(key){
foursquareKey = key;
setTimeout('alert("Logged into Foursquare");', 1);
}
function showKey(){
alert(foursquareKey);
}
</script>
</head>
<body>
<a href="javascript:get4sqKey();">get4sqKey();</a> |
<a href="javascript:showKey();">showKey();</a>
</body>
</html>
, , , , .
( PHP , secrets.php -. :)