我正在以这样的方式记录用户,
<?php
header("Location: https://foursquare.com/oauth2/authenticate?client_id=foofoofoo&response_type=code&redirect_uri=http://www.example.com/sandbox/fsAccept.php");
exit(0);
?>
然后我重定向回此接受页面以获取令牌
<?php
$cur = curl_init("https://foursquare.com/oauth2/access_token
?client_id=foofoo
&client_secret=foofoo
&grant_type=authorization_code
&redirect_uri=http://www.example.com/fsAccept.php
&code=CODE");
$cur;
$fsResponse = json_decode('{ access_token: ACCESS_TOKEN }', true);
header("Location: http://www.example.com/sandbox");
?>
然后我重定向到我的主页并且var_dump $fsResponse
这是var_dump
,
<?php
var_dump("$fsResponse");
?>
string(0) ""
我想我可能会在fsAccept.php
答案 0 :(得分:0)
您尝试json_decode()
的JSON字符串无效JSON,因此json_decode()
将返回布尔值FALSE以表示失败。
然后,您不能将$fsResponse
存储在任何位置,因此一旦脚本退出,该值就会丢失。它应该进入$_SESSION
,以便可以保留下一个请求。
所有归结为:curl脚本中的$fsResponse
是无用的,因为你的JSON很糟糕。当脚本退出时,该无用变量将丢失。 var_dump()脚本中的$fsResponse
与curl脚本中的string(0) {}
完全无关,除了共享相同的名称。
所以是的,你得到$fsResponse
因为"$fsResponse"
未定义,{{1}}在未定义的变量周围包裹一个空字符串。