嘿,我开始学习foursquare API,但我仍然坚持获取Access Token。 这是我在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格式的访问令牌。所以问题在于代码的卷曲部分。
你能找到我的错误吗?更重要的是,你能给我一些研究卷曲的资源吗?
编辑: 我做了一个var_dump($ result),输出是'boolean false'
答案 0 :(得分:6)
问题是http * s *,请尝试添加以下内容:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
答案 1 :(得分: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);