Wit.ai PHP cURL выполняет функцию бота?

Я впервые работаю с ботами. Я решил использовать бот wit.ai, используя PHP. То, что я пытаюсь сделать, это установить функцию обратного вызова для бота, например, когда пользователь спрашивает погоду, бот будет выполнять getWeather(), Как я могу передать эту функцию боту, если я использую cURL? Возможно ли это сделать? Я нашел несколько SDK на git, но все они неофициальны для wit.ai.

$ch = curl_init();
$headr = array();
$headr[] = "Authorization: Bearer XXXXXXXXXXXXXXXX";

curl_setopt($ch, CURLOPT_URL,"https://api.wit.ai/message?v=20170118&q=what is weather in London ?");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headr);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec ($ch);

curl_close ($ch);

echo $server_output;

я нашел этот SDK https://github.com/tgallice/wit-php, но я не могу использовать ActionMapping его всегда дает ошибку:

Неустранимая ошибка: класс ‘ActionMapping’ не найден в
/Users/jack/Documents/www/bar/index.php в строке 12

мой код:

   <?php
require_once __DIR__.'/vendor/autoload.php';

use Tgallice\Wit\Client;
use Tgallice\Wit\ConverseApi;
use Tgallice\Wit\Conversation;

use Tgallice\Wit\Model\Step\Action;
use Tgallice\Wit\Model\Step\Message;

class MyActionMapping extends ActionMapping
{
/**
* @inheritdoc
*/
public function action($sessionId, Context $context, Action $step)
{
return call_user_func_array(array($this, $step->getAction()), array($sessionId, $context));
}

/**
* @inheritdoc
*/
public function say($sessionId, Context $context, Message $step)
{
echo $step->getMessage();
}

}

$client = new Client('XXX');
$api = new ConverseApi($client);
$actionMapping = new MyActionMapping();
$conversation = new Conversation($api, $actionMapping);

$context = $conversation->converse('session_id', 'Hello I live in London');

0

Решение

Согласно вашей ошибке, вы уверены в следующих вещах:

Установить библиотеку:

Прежде всего, установите библиотеку через composer, чтобы все файлы добавлялись правильно. Может быть, это будет основной причиной.

Параметр передан в curl:

Для пшеницы вы использовали https://wit.ai/docs/http/20160526 API. Также здесь часть токена отсутствует.

и нажмите эту функцию:

$ curl -XPOST 'https://api.wit.ai/converse?v=20160526&session_id=123abc&q=weather%20in%20Brussels' \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H 'Authorization: Bearer $TOKEN'
Response:

{
"type": "merge",
"entities": {"location": [{"body": "Brussels",
"value": {"type": "value",
"value": "Brussels",
"suggested": true},
"start": 11,
"end": 19,
"entity": "location"}]},
"confidence": 1
}
4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector