【发布时间】:2018-07-31 11:16:12
【问题描述】:
我已经输入了所有必填字段,因为他们在https://cloud.google.com/vision/docs/detecting-labels#vision-label-detection-protocol 的协议部分上写了我的代码。但是,它仍然返回 400 错误。
<?php
if(!isset($googleapikey)){
include('settings.php');
}
function vision($query){
global $googleapikey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://vision.googleapis.com/v1/images:annotate?key='.$googleapikey);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
$result = curl_exec ($ch);
curl_close ($ch);
return $result;
}
$vdata = array();
$vdata['requests'][0]['image']['source']['imageUri'] = 'https://cloud.google.com/vision/docs/images/ferris-wheel.jpg';
$vdata['requests'][0]['features'][0]['type'] = 'LABEL_DETECTION';
echo vision(json_encode($vdata));
?>
【问题讨论】:
-
试试
json_encode($vdata, JSON_UNESCAPED_SLASHES)。默认情况下,json_encode()转义可能与 Google API 不兼容的正斜杠(例如http://) -
还是返回400错误
标签: php json api curl google-cloud-vision