请求Cloud Vision API中唯一的错误是没有设置HTTP头字段的属性
内容类型:应用程序/json
,因为您没有将其分配给正确的变量(您指向
$curl
而不是
$ch
):
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
运行旧代码时显示的错误如下,这表明查询没有将内容数据理解为JSON。
Cannot bind query parameter. Field '{\"requests\":[{\"image\":{\"source\":{\"imageU ri\":\"https://cloud' could not be found in request message.
作为补充,我向您推荐
Client Libraries for Cloud Vision API
,其中有一些
nice documentation
通过脚本使用Google云平台中的一些API,可以让您的生活更加轻松。在这种情况下,您不需要强制
curl
命令,您可以使用非常简单(且可理解)的代码实现相同的结果,例如:
<?php
require __DIR__ . '/vendor/autoload.php';
use Google\Cloud\Vision\VisionClient;
$projectId = '<YOUR_PROJECT_ID>';
$vision = new VisionClient([
'projectId' => $projectId
]);
$fileName = 'https://cloud.google.com/vision/docs/images/ferris-wheel.jpg';
$image = $vision->image(file_get_contents($fileName), ['LABEL_DETECTION']);
$labels = $vision->annotate($image)->labels();
echo "Labels:\n";
foreach ($labels as $label) {
echo $label->description() . "\n";
}
?>