Giter Site home page Giter Site logo

Comments (13)

Bogdaan avatar Bogdaan commented on July 25, 2024

"При установки"
как это понимать?

В коде установке хука этого нет. Проверка заголовка есть в вызове -

$headerName = 'HTTP_X_VIBER_CONTENT_SIGNATURE';

from viber-bot-php.

Bogdaan avatar Bogdaan commented on July 25, 2024

Просмотрите этот раздел:
https://github.com/Bogdaan/viber-bot-php/blob/master/docs/first-steps.md#setup-webhook

Этот код можно запустить как через cli так и cgi

from viber-bot-php.

Alimgulov avatar Alimgulov commented on July 25, 2024

$viberBot = new Client([
'token' => $this->viber_token,
]);

$viberBot->setWebhook($url);
вот тут срабатывает эта ошибка.
Как я понял, viber сам отправляет запрос на вх, когда его устанавливаешь.
И вот при этом запросе, вылетает ошибка.
Но, если установить этот вх, то бот работает нормально. (но что бы установить этот вх, сама страница вх должна отдавать 200 код)

from viber-bot-php.

Bogdaan avatar Bogdaan commented on July 25, 2024

Похоже вы неправильно понимаете схему взаимодействия.

  1. вы устанавливаете webhook (вызов api) с адресом http://x.xx/x
  2. viber запоминает этот адрес
  3. в дальнейшем viber будет присылать уведомление на адрес http://x.xx/x (на этом адресе НЕ нужно вызывать api которое снова устанавливает webhook - это бессмыслица)

from viber-bot-php.

Alimgulov avatar Alimgulov commented on July 25, 2024

Once a set_webhook request is sent Viber will send a callback to the webhook to check its availability and return a response to the user.

Сам viber тоже отправляет запрос при установке webhook.

from viber-bot-php.

Alimgulov avatar Alimgulov commented on July 25, 2024

и в вебхуке я не устанавливаю его опять )

from viber-bot-php.

Bogdaan avatar Bogdaan commented on July 25, 2024

Тогда я не понимаю в чем именно у вас возникли сложности.
Если при вызове set_webhook - то какие?
Если при использовании кода бота - то вероятно вы некорректно установили url

from viber-bot-php.

Alimgulov avatar Alimgulov commented on July 25, 2024

У меня есть 2 экшена.
1ый - установка вебкух
2ой - сам вебхук
Код 1ого:
$viberBot = new Client([
'token' => $this->viber_token,
]);
``
$viberBot->setWebhook($url);

экшн вебхука:
$bot = new Bot(['token' => $apiKey]);
$bot
->onConversation(function ($event) use ($bot, $botSender, $log) {
$log->info('onConversation '. var_export($event, true));
// this event fires if user open chat, you can return "welcome message"
// to user, but you can't send more messages!
return (new \Viber\Api\Message\Text())
->setSender($botSender)
->setText("Can i help you?");
})
->onText('|.*|s', function ($event) use ($bot, $botSender, $log) {
$log->info('onText '. var_export($event, true));
// .* - match any symbols
$bot->getClient()->sendMessage(
(new \Viber\Api\Message\Text())
->setSender($botSender)
->setReceiver($event->getSender()->getId())
->setText("HI!")
);
})
->on(function ($event) {
return true; // match all
}, function ($event) use ($log) {
$log->info('Other event: '. var_export($event, true));
})
->run();

Вот при вызове 1ого экшена, выдает ошибку

from viber-bot-php.

beneyraheem avatar beneyraheem commented on July 25, 2024
if ($bot) {
    $log->warning('Actual sign: '. $bot->getSignHeaderValue());
    $log->warning('Actual body: '. $bot->getInputBody());
}

This lines of code gives me this error, but when I remover this line it works, also PHP version 7 need this script to work..
I dont know I did it correctly or not.

from viber-bot-php.

Telegramsrv avatar Telegramsrv commented on July 25, 2024

Извиняюсь что врываюсь,
таким способом вебхук не снимается
$result = $client->setWebhook('');
#10
Invalid webhook url:

from viber-bot-php.

Alimgulov avatar Alimgulov commented on July 25, 2024

if (!empty($_GET['sig']) && empty($_SERVER['HTTP_X_VIBER_CONTENT_SIGNATURE'])) { $_SERVER['HTTP_X_VIBER_CONTENT_SIGNATURE'] = $_GET['sig']; }
в вебхук

from viber-bot-php.

Bogdaan avatar Bogdaan commented on July 25, 2024

@Alimgulov thanks, fixed in https://github.com/Bogdaan/viber-bot-php/tree/0.0.5

from viber-bot-php.

Niloofaar avatar Niloofaar commented on July 25, 2024

Добрый день Богдан! Когда пытаюсь запустить ваш bot-plus.php то тоже получаю следующую ошибку
[2018-11-23 09:24:43] bot.WARNING: Exception: Signature header not found [] []
Который ссылается в файл Bot.php где есть :
public function getSignHeaderValue()
{
$signature = '';
if (isset($_SERVER['HTTP_X_VIBER_CONTENT_SIGNATURE'])) {
$signature = $_SERVER['HTTP_X_VIBER_CONTENT_SIGNATURE'];
} elseif (isset($_GET['sig'])) {
$signature = $_GET['sig'];
}
if (empty($signature)) {
throw new \RuntimeException('Signature header not found', 1);
}
return $_SERVER[$headerName];
}
Как быть в данной ситуации ? Помогите пожалуйста.

from viber-bot-php.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.