Имя: Пароль:
1C
1C 7.7
v7: Как отправить Сообщение на вайбер 7,7 вин 2008.
0 uno-group
 
06.05.21
13:19
На инфостаре встречал обработку, но она работает из под 7 винды, что не совсем устраивает.
Куда копать с АПИ не работал.
1 ДенисЧ
 
06.05.21
13:35
придётся копать апи.
2 uno-group
 
06.05.21
13:52
Можно пример кода работы с апи.
Нашел для сайто писателей;
//<a href="viber://chat?number=%2B4957777777">Ссылка на чат Viber</a>
//<a href="viber://add?number=4957777777">Добавить контакт в Viber</a>
//<a href="viber://forward?text=Привет!">Поделиться текстом в Viber</a>
ЗапуститьПриложение("viber://chat?number="+СокрЛП(Номер)); отрабатывает и открывает вайбер с позиционированым на нужном контакте. А вот отправить текст не получается. Хотя на форуме где это обсуждалось автор писал, что у него получилось, правда правильный синтаксис так и не привел.
3 uno-group
 
06.05.21
13:54
Какую ВК лучше для этого АПИ юзать?
4 ugorchina
 
06.05.21
17:57
Так этот пример должен открыть установленный Вайбер и предложить поделиться данным текстом!

Вам нужно создать бота в Вайбер и тогда получите апишку

Далее v7plus Вам в помощь!
5 uno-group
 
07.05.21
14:19
бота создал. апи получил что с ним дальше делать ума не приложу есть пример работы с апи из v7plus
6 ugorchina
 
07.05.21
17:00
Дайте сюда апи
7 ugorchina
 
07.05.21
17:02
Чуть позже код дам
8 ugorchina
 
07.05.21
17:03
Опишите мне логику что Вы хотите получить?

(Модератору) можно сюда положить ссылку на свой ресурс который заточен для работы с ботами вайбер
9 ugorchina
 
10.05.21
20:59
Вам необходим webhook

вот код на PHP

<?php
    $auth_token = 'Ваш токен';
    $webhook = 'https://Домен';
    
    $jsonData =
    '{
        "auth_token": "'.$auth_token.'",
        "url": "'.$webhook.'",
        "event_types": ["subscribed", "unsubscribed", "delivered", "message", "seen"]
    }';
    
    $ch = curl_init('https://chatapi.viber.com/pa/set_webhook');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
    $response = curl_exec($ch);
    $err = curl_error($ch);
    curl_close($ch);
    if($err) {echo($err);}
    else {echo($response);}
?>

Вот код бота

в данном случае точно не помню но тут типа принимает сообщения от юзеров и может с ними общаться,

но можно навешать стилей , разные кнопочки / их поведение (да же товары и т)

можете сделать эхо бота он будет отвечать юзерам

а можете просто сделать рассылку

<?php

$auth_token = "вАШ Токен";
$send_name = "Живая лента";
$is_log = true;

// Работаем в корневой директории
chdir ('../../');
require_once('controller/AlexCMS.php');
$alexcms = new AlexCMS();

function put_log_in($data)
{
    global $is_log;
    if($is_log) {file_put_contents("tmp_in.txt", $data."\n", FILE_APPEND);}
}

function put_log_out($data)
{
    global $is_log;
    if($is_log) {file_put_contents("tmp_out.txt", $data."\n", FILE_APPEND);}
}

function sendReq($data)
{
    $request_data = json_encode($data);
    put_log_out($request_data);
    
    //here goes the curl to send data to user
    $ch = curl_init("https://chatapi.viber.com/pa/send_message");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request_data);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
    $response = curl_exec($ch);
    $err = curl_error($ch);
    curl_close($ch);
    if($err) {return $err;}
    else {return $response;}
}

function sendMsg($sender_id, $username = '', $ava = '', $text, $type, $tracking_data = Null, $arr_asoc = Null)
{

    global $auth_token, $send_name;
    
    $data['auth_token'] = $auth_token;
    $data['receiver'] = $sender_id;
    if($text != Null) {$data['text'] = $text;}
    $data['type'] = $type;
    //$data['min_api_version'] = $input['sender']['api_version'];
    if($username == ''){
        $data['sender']['name'] = $send_name;    
    } else {
        $data['sender']['name'] = $username;    
    }
    
    if($ava != ''){
        $data['sender']['avatar'] = $ava;
    }
    if($tracking_data != Null) {$data['tracking_data'] = $tracking_data;}
    if($arr_asoc != Null)
    {
        foreach($arr_asoc as $key => $val) {$data[$key] = $val;}
    }
    
    return sendReq($data);
}

function sendMsgText($sender_id, $text, $tracking_data = Null)
{
    return sendMsg($sender_id, $text, "text", $tracking_data);
}


$request = file_get_contents("php://input");
$input = json_decode($request, true);
put_log_in($request);

$type        = $input['message']['type'];  // тип сообщения (text/picture)
$text        = $input['message']['text'];  // сообщение юзера
$sender_id   = $input['sender']['id'];     // идентификатор юзера
$sender_name = $input['sender']['name'];   // Имя пользователя
$avatar      = $input['sender']['avatar']; // картинка (аватар)

$filter = $alexcms->db->placehold('AND m.id_vaiber = ?', $sender_id);

$query = "SELECT
                m.id,
                m.login,
                m.id_vaiber    
            FROM __managers m
            WHERE
                1
                $filter
            LIMIT 1
        ";
        $alexcms->db->query($query);
$men =  $alexcms->db->result();

if(empty($men->id)) {
    $manager = new stdClass();
    $manager->comment           = 'Пришел из VIBER';
    $manager->login             = $sender_name;
    $manager->menager_smtp_pass = '123321123321123';
    $manager->id_vaiber         = $sender_id;
    $manager->image             = $avatar;
    
    $manager->id = $alexcms->managers->add_manager($manager);
                
}

if($input['event'] == 'webhook')
{
  $webhook_response['status'] = 0;
  $webhook_response['status_message'] = "ok";
  $webhook_response['event_types'] = 'delivered';
  echo json_encode($webhook_response);
  die;
}
else if($input['event'] == "subscribed")
{
  sendMsgText($sender_id, "Спасибо, что подписались на нас!");
}
else if($input['event'] == "conversation_started")
{
  sendMsgText($sender_id, "Беседа началась!");
}
elseif($input['event'] == "message")
{
    // Выбираем всех менеджеров
    $query_ = $alexcms->db->placehold("SELECT
            DISTINCT
            b.id,
            b.login,
            b.id_vaiber
        FROM __managers b
        WHERE
            1
    ");
    $alexcms->db->query($query_);
    $managers =  $alexcms->db->results();
    if(!empty($managers)) {
        foreach ($managers as $m) {    
            if($m->id_vaiber != '') {
                if($m->id_vaiber != $sender_id) {    
                    sendMsg($m->id_vaiber, $sender_name, $avatar , $text, $type);
                }
            }
        }
    }
}

логика такова!

Вам необходим веб сервер в нем Вы ложите эти файлы и регите их в натсройках апи в вайбере

далее пишите апишку (на случай внешнего управления ботом

и обращаетесь к своей апи посредством v7
10 ugorchina
 
10.05.21
21:00
если нужно для тестов могу Выделить хостиг с вебхуком и т д

Вам нужно будет просто натсроить АПИ и нашкодить в 1С а далее заберете Исходники и перейдете на другой хостинг!
11 ugorchina
 
10.05.21
21:05
что касаемо работы с ботом напрямую я о током не в курсе здесь не смогу помочь (

если работать с апи то помогу

так же есть различные сервисы для создания бота
12 ugorchina
 
10.05.21
21:08
Вот пример но и тут нужен вебхук с доменом

в прочем если расскажете для каких целей проект если нагрузка будет не большая дам Вам домен третьего уровня и хост бесплатно пока живет мой сервер )
13 evgpinsk_
 
11.05.21
17:26
Почти 10 лет назад у меня был icq-робот, который общался с клиентами магазина (получал от них заказы и ставил резервы, отправлял сверки и т.д.), было прикольно :)
14 ugorchina
 
12.05.21
09:23
аськой уже мало кто пользуется (а жаль)
15 uno-group
 
12.05.21
15:59
Большое спасибо разбираюсь. Цель нужно автоматизировать рассылку уведомлений для интернет магазина. На сейчас 10-15 заказов.
Типа ваш заказ отправлен номер ТТН ... В случае если юзер не забирает заказ то отправить напоминание, что заказ уже лежит у него в городе на складе заберите.
16 FN
 
12.05.21
16:47
(15)
в современных месенджерах (в вайбере в частности) есть 2 варианта программной рассылки:
1. Через чат бот. Делается через api самой платформы вайбер. Бесплатно. Но сообщения можно отправлять только подписчикам твоего бота (по уникальному идентификатору пользователя, не по номеру телефона)
2. Через бизнес-сообщения. Делается через стороннюю контору, которая имеет договор с вайбер. У каждой такой конторы свой api. Сообщения платные (15-20 центов). Отправлять можно по номеру телефона. Также есть абонплата за альфа имя. Гугли "рассылки вайбер"
17 ugorchina
 
12.05.21
17:11
О сторонних конторах я уже писал. Мое же предложение касательно бесплатного метода! Ну, или дешевого
18 ugorchina
 
13.05.21
12:08
(15) А как Вы собираетесь организовать подписку на бота?
19 Mikeware
 
13.05.21
13:05
(18) в пхп-шном варианте пока не разбирался, короткий вопрос: отправлять сообщения в группу вайберовскую оно сможет? из снеговика.
Если да, буду ковырять (хостинг свой вроде есть, доступ к администратору групп тоже есть)
20 uno-group
 
14.05.21
08:37
(18) Я не настоящий сварщик, а только учусь. По ходу никак. Думал что можно что то типа оле, ком соединения организовать для связи с  клиентом вайбера установленном на компе, раз он из командной строки может контакты добавлять, позиционироваться на нужном контакте и т.п. Телеграмм вроде как может.
Может стоит в сторону чего то вроде такого подумать?
ЗапуститьПриложение("viber://add?number="+СокрЛП(Номер)); //Добавили контакт в Viber
ЗапуститьПриложение("viber://send?number="+СокрЛП(Номер));//Открыли вайбер и спозиционировались на нужном контакте
А дальше сэммулировать набор нужного текста на клавиатуре
21 uno-group
 
14.05.21
08:43
Еще стал рассматривать сторонние сервисы типа турбосмс установил ОДБС драйвер написал код зарегистрировался в личном кабинете подключил SQL
Функция ОтправитьТурбоСМС(Номер, Текст) Экспорт
    Соединение=СоздатьОбъект("ADODB.Connection");
    СтрокаСоединение = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=77.120.116.10;DataBase=users;UID=" + СокрЛП(пользователь) +";PWD=" + СокрЛП(пароль);
    //{MySQL ODBC 3.51 Driver}
    Попытка
        Соединение.Open(СтрокаСоединение);
    Исключение
        Сообщить("Не могу подключиться к базе!!!");
        Сообщить(описаниеошибки());
        Возврат 0;
    КонецПопытки;
    Соединение.Execute("insert into " + Пользователь+"(number,sign,message) values('" + Номер + "','" + Подпись+"','"+ Текст + "')");
    Возврат 1;
КонецФункции
не устанавливает соединение с сервером выдает:
Не могу подключиться к базе!!!
Microsoft OLE DB Provider for ODBC Drivers: [MySQL][ODBC 5.1 Driver]Can't connect to MySQL server on '77.120.116.10' (10060)
В чем ошибка? Что не настроил?
22 uno-group
 
14.05.21
08:48
Куда катится мир. То что двухтысячных делалось на раз через почту номер@оператор + текст сообщения или подключением старой доброй нокии 3110 шнурком к компу и отправкой простенького текста в ком порт. Сейчас надо через кучу левых сервисов и приблуд делать.