现在通过命令行运行,我得到了预期的JSON响应和成功的身份验证。 但是通过浏览器,我得到了错误。 编辑我可以验证并获取代码。如果我输入代码而不是变量,我可以从命令行获得响应。
还经过测试,能够对实际字符串进行子变量处理,并且仍然可以通过命令行进行身份验证,但不能通过浏览器进行身份验证。
function tokenRequest($clientId, $clientSecret, $code){
$url = 'https://www.strava.com/oauth/token?';
$oauthFields = array(
'client_id' => $clientId,
'client_secret' => $clientSecret,
'code' => $code);
$parameters = '&' . http_build_query($oauthFields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url.$parameters);
curl_setopt($ch, CURLOPT_POST, count($oauthFieldsObject));
curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)');
$urlResponse = curl_exec($ch);
curl_close($ch);
return (json_decode($urlResponse));
}
预计是json响应,但在我的主页面上我解码它但没有任何显示。下面是尝试显示json数据的代码。
$token = tokenRequest($client_id, $client_secret, $codeUrl);
echo $token;
var_dump($token);
答案 0 :(得分:0)
答案 1 :(得分:0)
我已经弄明白了,我补充道:
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
因为它是一个https网站。