Как ответить с правильным значением запроса при попытке включить подписки на события для laravel-botman на slack - PullRequest
0 голосов
/ 18 октября 2018

Это не дублирование моего предыдущего вопроса здесь .

Я использую botman для создания бота для моего слабого приложения.

Используя слабый API, я создал бота, которого я хочу подключить к ботману в моем приложении laravel.Я использую ngrok для туннелирования localhost.Я должен сначала проверить свой URL, чтобы использовать его для бота.Ну, я пытаюсь подтвердить URL, но я продолжаю получать эту ошибку.

URL вашего запроса не ответил с правильным значением запроса.Обновите ваш URL-адрес, чтобы получить новый запрос и значение.

Проверка терминала ngrok показывает, что запрос от slack получен и имеет статус 200. Если я воспроизводю запрос с использованием почтальона, значениеВозвращается параметр вызова, но я все еще получаю erorr.Я использую этот код для загрузки слабого драйвера в мой файл маршрутов.

<?php
use BotMan\BotMan\BotMan;
use BotMan\BotMan\BotManFactory;
use BotMan\Drivers\Slack\SlackDriver;
use BotMan\BotMan\Drivers\DriverManager;

Route::match(['get', 'post'],'botman', function () {

    DriverManager::loadDriver(SlackDriver::class);

    // Create BotMan instance
    $config = [
            'slack' => [
                'token' => '***slack Token***' //slack token
                ]
            ];
    $botman = BotManFactory::create($config);

    // give the bot something to listen for.
    $botman->hears('hello', function (BotMan $bot) {
        $bot->reply('Hello yourself.');
    });

    // start listening
    $botman->listen();
});

Я попытался форсировать ответ с параметром вызова в URL, как в моем файле маршрутов.

$payload = $request->json();

if ($payload->get('type') === 'url_verification') {
    return $payload->get('challenge');
}

SlackBot::hears('keyword', function (Bot $bot) {
    $bot->respond('lets begin');
});

Это все еще не работает, я все еще получаю ошибку URL didn’t respond with the correct challenge value....

Чего мне не хватает?или как мне использовать слабый драйвер, чтобы он отвечал с правильными параметрами?Веб-драйвер работает отлично.

1 Ответ

0 голосов
/ 19 октября 2018

Я заметил, что слабый API ожидает значения вызова в формате json.

просто делает return $payload->get('challenge');.не делает трюк.Я изменил это на return response->json( return $payload->get('challenge'));.Это подтвердило мой URL.

Я не уверен, является ли это проблемой со всем slack-драйвером ботмана, я не нашел никого другого с такой же проблемой.

...