Задать вопрос
  • Выполнить строки кода из текстового файла в С# VS?

    AleksMo
    @AleksMo Автор вопроса
    Там сложная задача )) Нужно Во время выполнения программы!
    Ответ написан
  • Как в Viber отправить клавиатуру?

    AleksMo
    @AleksMo
    <?php

    //$receiverID - это кому отправить клавиатуру ...
    # Примеры: https://viber.github.io/docs/tools/keyboard-examples/
    function send_klava($receiverID){

    $curl = curl_init();

    $json_data = '{
    "receiver":"'.$receiverID.'",
    "type":"text",
    "text":"Hello world",
    "keyboard":{
    "Type":"keyboard",
    "DefaultHeight":false,
    "Buttons":[
    {
    "ActionType":"reply",
    "ActionBody":"reply to me",
    "Text":"Key text",
    "TextSize":"regular"
    }
    ]
    }
    }
    ';

    $data = json_decode($json_data); // Преобразовываем в json код

    curl_setopt_array($curl, array(
    CURLOPT_URL => "https://chatapi.viber.com/pa/send_message",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => json_encode($data) , // отправка кода

    CURLOPT_HTTPHEADER => array(
    "Cache-Control: no-cache",
    "Content-Type: application/JSON",
    "X-Viber-Auth-Token: 0000c419ece7d075-4c64680ae0e809a8-ab8000624a14e0000"
    ),
    ));

    $response = curl_exec($curl);
    $err = curl_error($curl);

    curl_close($curl);

    if ($err) {
    echo "cURL Error #:" . $err;
    } else {
    echo $response;
    }
    }

    //Отправка клавы пользователю с id
    send_klava('yI8UmH+jb9ZAzyYtU/mYwg==');

    ?>
    Ответ написан
    Комментировать
  • Как обрабатывать ответы viber bot?

    AleksMo
    @AleksMo
    Когда пользователь пишет в паблик(чат), определяется его id (yI8UmH+jb9ZAzyYtU/mYwg==),
    ID можно записать в таблицу.
    Если он отправил сообщение - изменить имя (пример:EditName), то в таблице ищем соответствующий ID и записываем новое ФИО (запрос - update), но это только для Вашей бд.
    В вайбере имя будет только, то которое указал пользователь.
    <?php
    # массив с данными пользователя ...
    $json = file_get_contents('php://input');
    $viber = json_decode($json);
    //$sender=$viber->sender->id;//ID Для отправки сообщения

    $sender = $viber->{'sender'}; // sender - это массив с данными пользователя
    $name_user=$sender->name;//Имя
    $avatar = $sender->avatar; //Картинка
    $receiverID = $sender->id; // ID

    # Сообщение от пользователя
    $message=$viber->message->text;

    if ($receiverID!= "") //Если ID не пустое то производим сохранение пользователя в БД

    {
    # Записываем в базу данные о пользователе, который подписался ....
    # Подключение к БД
    include 'config.php';
    $db = mysql_connect($servername, $username, $password);
    if (!$db) {die('Ошибка соединения: ' . mysql_error());}
    mysql_select_db($dbname, $db);
    /*Делаем запрос к БД*/
    $result = mysql_query ("INSERT IGNORE INTO ViberTab (receiver,name, avatar) VALUES ('$receiverID','$name_user', '$avatar')");
    mysql_close($db);
    }
    // 1
    if ($message == ' EditName ') //Если сообщение равно изменить имя
    {
    include 'config.php';
    $db = mysql_connect($servername, $username, $password);
    if (!$db) {die('Ошибка соединения: ' . mysql_error());}
    mysql_select_db($dbname, $db);
    /*Делаем запрос к БД*/
    $result = mysql_query ("UPDATE ViberTab SET name =$viber->message->text WHERE id=$receiverID ");
    mysql_close($db);
    }
    ?>
    Это пример для размышления ... может есть еще варианты ....
    Ответ написан
    Комментировать
  • Как отправить сообщение в viber с помощью PHP API?

    AleksMo
    @AleksMo
    <?php
    function send_message($receiverID,$TextMessage){

    $curl = curl_init();
    $json_data = '{
    "receiver":"'.$receiverID.'",
    "min_api_version":1,
    "sender":{
    "name":"NameBot",
    "avatar":"avatar.example.com"
    },
    "tracking_data":"tracking data",
    "type":"text",
    "text":"'.$TextMessage.'"
    }
    ';
    $data = json_decode($json_data); // Преобразовываем в json код

    curl_setopt_array($curl, array(
    CURLOPT_URL => "https://chatapi.viber.com/pa/send_message",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => json_encode($data) , // отправка кода

    CURLOPT_HTTPHEADER => array(
    "Cache-Control: no-cache",
    "Content-Type: application/JSON",
    "X-Viber-Auth-Token: 0000c419ece7d075-4c64680ae0e809a8-ab8000624a14e0000"
    ),
    ));

    $response = curl_exec($curl);
    $err = curl_error($curl);

    curl_close($curl);

    if ($err) {
    echo "cURL Error #:" . $err;
    } else {
    echo $response;
    }
    }
    // сообщение в viber
    send_message('yI8UmH+jb9ZAzyYtU/mYwg==','Привет Это бот!');

    ?>
    Ответ написан
  • Прием данных от Viber и запись в БД?

    AleksMo
    @AleksMo
    //Делай так, у меня работает ....

    # массив с данными пользователя ...
    $json = file_get_contents('php://input');
    $viber = json_decode($json);
    //$sender=$viber->sender->id;//ID Для отправки сообщения

    $sender = $viber->{'sender'}; // sender - это массив с данными пользователя
    $name_user=$sender->name;//Имя
    $avatar = $sender->avatar; //Картинка
    $receiverID = $sender->id; // ID

    # Сообщение от пользователя
    $message=$viber->message->text;

    if ($receiverID!= "") //Если ID не пустое то производим сохранение пользователя в БД

    {
    # Записываем в базу данные о пользователе который подписался ....
    # Подключение к БД
    include 'config.php';
    $db = mysql_connect($servername, $username, $password);
    if (!$db) {die('Ошибка соединения: ' . mysql_error());}
    mysql_select_db($dbname, $db);
    /*Делаем запрос к БД*/
    $result = mysql_query ("INSERT IGNORE INTO viber (receiver,name, avatar) VALUES ('$receiverID','$name_user', '$avatar')");
    mysql_close($db);
    }
    Ответ написан
    Комментировать