Wit.ai PHP cURL是否执行bot函数?

Wit.ai PHP cURL是否执行bot函数?,php,curl,bots,Php,Curl,Bots,这是我第一次使用机器人。我决定使用wit.ai bot,使用PHP。我试图做的是为bot设置回调函数,例如,当用户询问bot是否将执行getWeather()。如果我正在使用cURL,如何将此函数传递给bot?有可能吗?我在git上找到了一些SDK,但它们都是非官方的 $ch = curl_init(); $headr = array(); $headr[] = "Authorization: Bearer XXXXXXXXXXXXXXXX"; curl_setopt($ch, CURLOPT

这是我第一次使用机器人。我决定使用wit.ai bot,使用PHP。我试图做的是为bot设置回调函数,例如,当用户询问bot是否将执行
getWeather()
。如果我正在使用
cURL
,如何将此函数传递给bot?有可能吗?我在git上找到了一些SDK,但它们都是非官方的

$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,但我无法使用ActionMapping它的始终给定错误:

致命错误:在中找不到类“ActionMapping” /第12行的Users/jack/Documents/www/bar/index.php

我的代码:

   <?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');

根据您的错误,您确定这些事情:

安装库:

首先,通过composer安装库,以便正确添加所有文件。也许这将是主要原因

在curl中传递的参数:

对于惠特,您已经使用了API。这里的标记部分也缺少表单curl

点击此功能:

$ 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
  }

根据您的错误,您确定这些事情:

安装库:

首先,通过composer安装库,以便正确添加所有文件。也许这将是主要原因

在curl中传递的参数:

对于惠特,您已经使用了API。这里的标记部分也缺少表单curl

点击此功能:

$ 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
  }

没有
POST/message
端点。请更具体地问一个可再现的、清楚的问题,或者简单地阅读文档@DanFromGermany,很抱歉我是新来的,我看到你提供的链接不够清晰!!
ActionMapping
类是命名空间的。您的类需要使用
class MyActionMapping extends\Tgallice\Wit\ActionMapping
或在类文件顶部添加
使用Tgallice\Wit\ActionMapping
。并且没有
POST/message
端点。请更具体地问一个可再现的、清楚的问题,或者简单地阅读文档@DanFromGermany,很抱歉我是新来的,我看到你提供的链接不够清晰!!
ActionMapping
类是命名空间的。您的类需要使用
class MyActionMapping extends\Tgallice\Wit\ActionMapping
或在类文件顶部添加
使用Tgallice\Wit\ActionMapping
。和