@Perokar

Как отправлять сообщения на Viber?

Здравствуйте. Господа Гуру и не очень, вопрос следующий на сайте лендинге есть простенькая форма из двух строк и нужно по нажатию кнопки что бы введённая информация отправлялась бы в вайбер.
Создал я аккаунт для бота, узнал его токен. Как узнать id фиг его знает,(инструкция с postman не работает ибо запросы по токену улетают в пустоту)
Везде висит один и тот же кусок кода
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);
    }
}
$Viber = new Viber();
$Viber->message_post(
    '01234567890A=', - где его взять этот id ? и как мне выполнять только часть c отправкой, какой смысл каждый раз создавать и описывать. 
    [
        'name' => 'Admin', // Имя отправителя. Максимум символов 28.
        'avatar' => 'http://avatar.example.com' // Ссылка на аватарку. Максимальный размер 100кб.
    ],
    'Test'
);


Я так понимаю что нужно использовать вебхук (к чему его привязывать ?)
К домену лендинга?
Вызов скрипта выполняю так:
function connect () {
  $.ajax(
    {
      type:'POST',
      url:'Bot/viber.php',
      success: function(){console.log ('ok');}
    });
}


Но мне в viber.php надо отправить 2 текстовых переменных которые потом оправятся в сообщении по нажатию кнопки, событие на кнопке висит.
Я особо не силён ни php ни ajax запросах
  • Вопрос задан
  • 591 просмотр
Пригласить эксперта
Ответы на вопрос 2
@Perokar Автор вопроса
ссылка mysite.ru/secret_path/h00k.php. не открывается ошибка 404.
Возможно поэтому я не понимаю как webhookom захватить id подписанного пользователя, и пробросить в файл viber.php
Ответ написан
shurshur
@shurshur
Сисадмин, просто сисадмин...
Вебхук надо настроить у себя. Например, mysite.ru/secret_path/h00k.php. Вызовом https://chatapi.viber.com/pa/set_webhook его установить для своего бота.

Далее надо подписаться на свой public account и написать в него сообщение. Это сообщение прилетит в webhook, у него будет какой-то user_id (у одного и того же пользователя в разных ботах будет разный user_id для анонимности).

Пока пользователь подписан на public account, ему можно слать сообщения по его user_id. Входящие сообщения от него и статусы по отправленным будут прилетать в webhook.

В общих чертах так.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы