Im einen Code einer hier Antwort mit:Foursquare api Rückkehr null access_token
Ich verwende wamp und ich tat alles, wie er es tat. Das Problem ist, dass der $ token-Wert leer ist. Ich hätte nicht gefragt, aber es gibt null und ich habe fast alles versucht. Hier ist der Code:
index.html
<!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;
// Open foursquare login window.
function get4sqKey(){
if(!foursquareKey){
window.open('scripts/4sq_Login.php', 'foursquareAuth', 'width=960, height=548');
}
}
// called crosswindow by login window
function set4sqKey(key){
foursquareKey = key;
alert(foursquareKey);
//alert("Logged into Foursquare"); // setTimeout makes alert non-blocking
}
// simple alert to display OAuth token
function showKey(){
alert(foursquareKey);
}
// -->
</script>
</head>
<body>
<a href="javascript:get4sqKey();">get4sqKey();</a> |
<a href="javascript:showKey();">showKey();</a>
</body>
</html>
4sq_login.php in Skriptordner.
<?php
require_once('secrets.php'); //defines CLIENT_ID
// build $url
$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) ;
?>
4sq_Callback. Die Verzeichnisse sind festgelegt und der viereckige Callback-Link ist ebenfalls korrekt.
<?php
// Foursquare login step 2, echo back $code from QUERY_STRING
require_once('secrets.php'); // defines CLIENT_ID & CLIENT_SECRET
// get $code from QUERY_STRING
parse_str($_SERVER['QUERY_STRING'], $query);
$code = $query['code'];
// build url
$url2 = 'https://foursquare.com/oauth2/access_token';
$url2 .= '?client_id='.CLIENT_ID;
$url2.= '&client_secret='.CLIENT_SECRET;
$url2 .= '&grant_type=authorization_code';
$url2 .= '&redirect_uri=http://localhost/scripts/4sq_Callback.php'; //change to your 4sq callback
$url2 .= "&code=.$code";
// call to https://foursquare.com/oauth2/access_token with $code
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url2);
$result = curl_exec($ch);
curl_close($ch);
// $result value is json {access_token: ACCESS_TOKEN}
$values = json_decode($result, true);
$token = $values['access_token'];
// set access_token cookie (if you wish)
// crosswindow scripting to pass back $token
echo('<script type="text/javascript">');
echo('opener.set4sqKey("'.$token.'");');
echo('self.close();'); // close self
echo('</script>');
Was ist die Ausgabe von 'var_dump ($ result)'? – kunruh
Auch die Zeile '$ url2. =" & Code =. $ Code ";' sieht ein wenig verdächtig aus ... Es sei denn, dies ist eine spezielle Formatanforderung der API, meinst du '$ url2. =" & Code = ". $ code; ' – kunruh
var_dump gibt boolean false –