网站添加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标记和邮件的加密.