5

嘿,我开始学习foursquare API,但我一直在获取访问令牌。这是我在 SO 中找到的代码的一部分。

        // build url
    $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=**********/callback'; //change to your 4sq callback
    $url .= '&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, $url);
    $result = curl_exec($ch);

但是这不起作用,所以我试图找到错误。首先回显 $url 并手动单击该链接。它奏效了,foursquare 以 json 格式返回给我一个访问令牌。所以问题出在代码的卷曲部分。

你能找到我的错误吗?更重要的是,你能给我推荐一些研究 curl 的资源吗?

编辑:我做了一个 var_dump($result) 并且输出是 'boolean false'

4

2 回答 2

6

问题是 http* s *,尝试添加这些:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
于 2012-11-23T22:03:19.523 回答
2

如果它是一个 POST 请求,那么这是正确的方法:

$body.='client_id='.CLIENT_ID etc.
$c = curl_init ();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt ($c, CURLOPT_POST, true);
curl_setopt ($c, CURLOPT_POSTFIELDS, $body);
curl_setopt ($c, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec ($c);
curl_close ($c);
于 2012-11-23T21:49:02.910 回答