[英]PHP Strange code behaviour
这是我的goo.gl网址缩短程序类。 像Googl :: shorten(“ http://google.com ”)一样使用它。 我不明白为什么它返回Null。 我究竟做错了什么?
<?php
define('GOOGLE_API_KEY', 'AIzaSyBS7WpEDiSZ91p-SJoNWOkKxqveb1sfpf4');
define('GOOGLE_ENDPOINT', 'https://www.googleapis.com/urlshortener/v1');
class Googl {
static function shorten($longUrl)
{
// initialize the cURL connection
$ch = curl_init(
sprintf('%s/url?key=%s', GOOGLE_ENDPOINT, GOOGLE_API_KEY)
);
// tell cURL to return the data rather than outputting it
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// create the data to be encoded into JSON
$requestData = array(
'longUrl' => $longUrl
);
// change the request type to POST
curl_setopt($ch, CURLOPT_POST, true);
// set the form content type for JSON data
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
// set the post body to encoded JSON data
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData));
// perform the request
$result = curl_exec($ch);
curl_close($ch);
// decode and return the JSON response
return json_decode($result, true);
}
}
?>
您需要添加此参数。( 由于googleapis在HTTPs上运行 )
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
然后打电话
$res= Googl::shorten('http://stackoverflow.com');
var_dump($res);
OUTPUT :
array (size=3)
'kind' => string 'urlshortener#url' (length=16)
'id' => string 'http://goo.gl/Vmnf' (length=18)
'longUrl' => string 'http://stackoverflow.com/' (length=25)
<?php
define('GOOGLE_API_KEY', 'AIzaSyBS7WpEDiSZ91p-SJoNWOkKxqveb1sfpf4');
define('GOOGLE_ENDPOINT', 'https://www.googleapis.com/urlshortener/v1');
class Googl {
static function shorten($longUrl)
{
// initialize the cURL connection
$ch = curl_init(
sprintf('%s/url?key=%s', GOOGLE_ENDPOINT, GOOGLE_API_KEY)
);
// tell cURL to return the data rather than outputting it
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// create the data to be encoded into JSON
$requestData = array(
'longUrl' => $longUrl
);
// change the request type to POST
curl_setopt($ch, CURLOPT_POST, true);
// set the form content type for JSON data
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// set the post body to encoded JSON data
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData));
// perform the request
$result = curl_exec($ch);
curl_close($ch);
// decode and return the JSON response
return json_decode($result, true);
}
}
$res= Googl::shorten('http://stackoverflow.com');
var_dump($res);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.