网站添加QQ登陆API调试报错,错误信息如下:Warning: file_get_contents(
https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=100392036&redirect_uri=oauth%2Fcallback.php&client_secret=e50df09387f0326b85cbe36782f5fd7d&code=F5611ED4CE40698E2E8319276881F61F
) [function.file-get-contents]: failed to open stream: No such file or directory in D:\wwwroot\b2bku\API\class\URL.class.php on line 49
可能是服务器无法请求https协议
可能未开启curl支持,请尝试开启curl支持,重启web服务器,如果问题仍未解决,请联系我们
但服务器已经开启curl支持了,为什么还提示这个呢?解决方法有如下两种:
1、打开php_openssl.dll模块
2、或者修改api\comm\utils.php (PHP SDK是这个)
将function get_url_contents($url)
{
if (ini_get("allow_url_fopen") == "1")
return file_get_contents($url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
替换为:function get_url_contents($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
return $result;
}
原因如下:
OpenSSL没有开启!
OpenSSL是一套用于SSL/TLS协议的加密工具,其作用有:
1.生成私有密钥.
2.生成证书,即数字签名证书,它包含一个公有密钥,可以用来单向的加密和解密数据.即,使用公钥加密的数据,只能使用
私有密钥解密.使用私钥加密的数据,可以使用公钥来解密.
3.计算信息摘要.
4.SSL/TLS客户端和服务器端测试.
5.处理S/MIME标记和邮件的加密.