Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Как отправить Сообщение на вайбер 7,7 вин 2008.

v7: Как отправить Сообщение на вайбер 7,7 вин 2008.
Я
   uno-group
 
06.05.21 - 13:19
На инфостаре встречал обработку, но она работает из под 7 винды, что не совсем устраивает.
Куда копать с АПИ не работал.
 
 Партнерская программа EFSOL Oblako
   ДенисЧ
 
1 - 06.05.21 - 13:35
придётся копать апи.
   uno-group
 
2 - 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="+СокрЛП(Номер)); отрабатывает и открывает вайбер с позиционированым на нужном контакте. А вот отправить текст не получается. Хотя на форуме где это обсуждалось автор писал, что у него получилось, правда правильный синтаксис так и не привел.
   uno-group
 
3 - 06.05.21 - 13:54
Какую ВК лучше для этого АПИ юзать?
   ugorchina
 
4 - 06.05.21 - 17:57
Так этот пример должен открыть установленный Вайбер и предложить поделиться данным текстом!

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

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

(Модератору) можно сюда положить ссылку на свой ресурс который заточен для работы с ботами вайбер
   ugorchina
 
9 - 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
   ugorchina
 
10 - 10.05.21 - 21:00
если нужно для тестов могу Выделить хостиг с вебхуком и т д

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

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

в прочем если расскажете для каких целей проект если нагрузка будет не большая дам Вам домен третьего уровня и хост бесплатно пока живет мой сервер )
   evgpinsk_
 
13 - 11.05.21 - 17:26
Почти 10 лет назад у меня был icq-робот, который общался с клиентами магазина (получал от них заказы и ставил резервы, отправлял сверки и т.д.), было прикольно :)
   ugorchina
 
14 - 12.05.21 - 09:23
аськой уже мало кто пользуется (а жаль)
   uno-group
 
15 - 12.05.21 - 15:59
Большое спасибо разбираюсь. Цель нужно автоматизировать рассылку уведомлений для интернет магазина. На сейчас 10-15 заказов.
Типа ваш заказ отправлен номер ТТН ... В случае если юзер не забирает заказ то отправить напоминание, что заказ уже лежит у него в городе на складе заберите.
   FN
 
16 - 12.05.21 - 16:47
(15)
в современных месенджерах (в вайбере в частности) есть 2 варианта программной рассылки:
1. Через чат бот. Делается через api самой платформы вайбер. Бесплатно. Но сообщения можно отправлять только подписчикам твоего бота (по уникальному идентификатору пользователя, не по номеру телефона)
2. Через бизнес-сообщения. Делается через стороннюю контору, которая имеет договор с вайбер. У каждой такой конторы свой api. Сообщения платные (15-20 центов). Отправлять можно по номеру телефона. Также есть абонплата за альфа имя. Гугли "рассылки вайбер"
   ugorchina
 
17 - 12.05.21 - 17:11
О сторонних конторах я уже писал. Мое же предложение касательно бесплатного метода! Ну, или дешевого
   ugorchina
 
18 - 13.05.21 - 12:08
(15) А как Вы собираетесь организовать подписку на бота?
   Mikeware
 
19 - 13.05.21 - 13:05
(18) в пхп-шном варианте пока не разбирался, короткий вопрос: отправлять сообщения в группу вайберовскую оно сможет? из снеговика.
Если да, буду ковырять (хостинг свой вроде есть, доступ к администратору групп тоже есть)
   uno-group
 
20 - 14.05.21 - 08:37
(18) Я не настоящий сварщик, а только учусь. По ходу никак. Думал что можно что то типа оле, ком соединения организовать для связи с  клиентом вайбера установленном на компе, раз он из командной строки может контакты добавлять, позиционироваться на нужном контакте и т.п. Телеграмм вроде как может.
Может стоит в сторону чего то вроде такого подумать?
ЗапуститьПриложение("viber://add?number="+СокрЛП(Номер));//Добавили контакт в Viber

ЗапуститьПриложение("viber://send?number="+СокрЛП(Номер))//Открыли вайбер и спозиционировались на нужном контакте

А дальше сэммулировать набор нужного текста на клавиатуре
   uno-group
 
21 - 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)
В чем ошибка? Что не настроил?
   uno-group
 
22 - 14.05.21 - 08:48
Куда катится мир. То что двухтысячных делалось на раз через почту номер@оператор + текст сообщения или подключением старой доброй нокии 3110 шнурком к компу и отправкой простенького текста в ком порт. Сейчас надо через кучу левых сервисов и приблуд делать.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.