麻烦使用卷曲到OAUTH Foursquare

时间:2014-06-23 19:59:54

标签: php curl

我正在以这样的方式记录用户,

<?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

中设置错误

1 个答案:

答案 0 :(得分:0)

您尝试json_decode()的JSON字符串无效JSON,因此json_decode()将返回布尔值FALSE以表示失败。

然后,您不能将$fsResponse存储在任何位置,因此一旦脚本退出,该值就会丢失。它应该进入$_SESSION,以便可以保留下一个请求。

所有归结为:curl脚本中的$fsResponse是无用的,因为你的JSON很糟糕。当脚本退出时,该无用变量将丢失。 var_dump()脚本中的$fsResponse与curl脚本中的string(0) {}完全无关,除了共享相同的名称。

所以是的,你得到$fsResponse因为"$fsResponse"未定义,{{1}}在未定义的变量周围包裹一个空字符串。