Всем привет! Возможно вопрос простой, но уже мозг сломал, подскажите пжлста.
Мне надо отправлять новые статьи с сайта подписчикам в вайбер.
Создал вайбер бот по инструкции timeweb.com/ru/community/articles/kak-sozdat-chat-bota-dlya-viber-1 (в конце там правда уже не актуально). Зарегистрировал вебхук на сайте.
Открываю теперь бота -
https://i.imgur.com/Nm2Y495.png (открывается только по qr коду, так не хочет -
viber://pa?chatURI=sovietgarage&text=Привет!) Но диалог с ботом не начинается... Старт диалога надо в бекенде писать?
сам бот:
<?php
class Viber
{
private $url_api = "https://chatapi.viber.com/pa/";
private $token = "";
public function message_post
(
$from, // ID администратора Public Account.
array $sender, // Данные отправителя.
$text // Текст.
)
{
$data['from'] = $from;
$data['sender'] = $sender;
$data['type'] = 'text';
$data['text'] = $text;
return $this->call_api('post', $data);
}
private function call_api($method, $data)
{
$url = $this->url_api.$method;
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\nX-Viber-Auth-Token: ".$this->token."\r\n",
'method' => 'POST',
'content' => json_encode($data)
)
);
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
return json_decode($response);
}
}
?>
вызываем функцию:
require_once 'bot_viber.php';
require_once 'bot_config.php';
function action_new_products( $new_status, $old_status, $post ) {
global $post;
global $bot_conf;
if ( $post->post_type !== 'product' ) return;
if ( 'publish' !== $new_status or 'publish' === $old_status ) return;
// тут функция отправки заголовка + url в вайбер бота. Уведомление о новом продукте (заголовок + урл получат все подписчики бота)
$message = 'Новый товар: '.get_the_title($post) . "\n" . the_permalink($post);
set_time_limit($bot_conf['delay']+30);
sleep ($bot_conf['delay']);
$Viber = new Viber();
$Viber->message_post(
$bot_conf['viber_token'],
[
'name' => 'Admin', // Имя отправителя. Максимум символов 28.
],
$message
);
}
add_action( 'transition_post_status', 'action_new_products', 10, 3 );
конфиг:
<?php
$bot_conf = [
'viber_token' => '*****752858e5ddc9',
'delay' => 10, // Время задержки (в секундах)
];
?>