1

我正在使用使用 Composer 下载的应用程序。

该包有许多可以调用和使用的类。但是,当我运行以下代码时,出现以下错误。

<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');

include 'vendor/autoload.php';

$clarifai = new \DarrynTen\Clarifai\Clarifai('CLARIFAI_API_KEY');

$input = new Input();
    $input->setImage('https://samples.clarifai.com/metro-north.jpg')->isUrl();
    $inputResult = $clarifai->getInputRepository()->add($input);

echo json_encode($inputResult);
?>

错误:

警告:包括(/var/www/html/vendor/darrynten/clarifai-php/src/Entity):无法打开流:不是第 7 行 /var/www/html/ctest.php 中的目录

警告:include():无法在 /var/www/ 中打开 '/var/www/html/vendor/darrynten/clarifai-php/src/Entity' 以包含 (include_path='.:/usr/share/php')第 7 行的 html/ctest.php

致命错误:未捕获的错误:在 /var/www/html/ctest.php:11 中找不到类“输入”堆栈跟踪:在第 11 行的 /var/www/html/ctest.php 中抛出 #0 {main}

输入类位于/var/www/html/vendor/darrynten/clarifai-php/src/Entity我在第一次包含之后使用 PHP 中的 include 关键字,但无济于事。

include 'vendor/autoload.php';
include '/var/www/html/vendor/darrynten/clarifai-php/src/Entity';

后来,我使用了以下代码

$concept = new \DarrynTen\Clarifai\Entity\Concept();
$concept->setId('boscoe')->setValue(true);

$input = new \DarrynTen\Clarifai\Entity\Input();
$input->setImage('https://samples.clarifai.com/puppy.jpeg')->isUrl()
    ->setConcepts([$concept]);

$inputResult = $clarifai->getInputRepository()->add($input);

在最后一行,我收到了这个错误。(Guzzle 相关)

致命错误:未捕获的 GuzzleHttp\Exception\ClientException:客户端错误:POST https://api.clarifai.com/v2/inputs导致400 Bad Request响应:{"status":{"code":10020,"description":"Failure"},"inputs":[{"id":" e25be6bf0a4a4090a774694c016202cb","data":{"image":{"ur (truncated...) in /var/www/html/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:111 堆栈跟踪:#0 / var/www/html/vendor/guzzlehttp/guzzle/src/Middleware.php(65): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response)) #1

这也与名称空间有关吗?

4

2 回答 2

1

我发现了一个新的 PHP 库,它似乎与Clarifai 中使用新版本创建的新应用程序api_key兼容:phpfanatic/clarifai

您可以轻松地尝试通过 composer 安装它:

composer require phpfanatic/clarifai

作为依赖项,您需要:

  • PHP - 5.6, 7.0 - 可以与早期版本一起使用,目前未经测试。
  • 卷曲 - *
  • Clarifai API 密钥 - clarifai
  • PHPUnit - 运行测试(可选)。

在这里您可以找到包含快速教程分步说明的完整文档。

于 2017-12-19T17:16:05.293 回答
0

来自 Clarifai 的 Eddie。抱歉,您遇到了问题。

我看到您正在使用 API 密钥。这个社区库目前只支持我们旧的认证机制。Clarifai 中的所有新“应用程序”都只能使用 和 来创建,而api_key不是。client_idclient_secret

目前有一个PR 开放以添加对 API 密钥的支持。

我们希望在今年年底前获得一流的 PHP 支持。

于 2017-10-10T15:43:10.080 回答