sputnickk
@sputnickk

Как создать Viber бот?

Всем привет! Возможно вопрос простой, но уже мозг сломал, подскажите пжлста.

Мне надо отправлять новые статьи с сайта подписчикам в вайбер.

Создал вайбер бот по инструкции 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,    // Время задержки (в секундах)
  ];
?>
  • Вопрос задан
  • 979 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
так это не делается

делается декомпозиция и по форме пацанам докладывается:

телефон - скрипт - проблем нет
скрипт - бот - проблем нет, ответ такой: "pnx mamkin hacker"

и тогда общественность подскажет в чем и где
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы