Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
YEgor Briz
@LasteExile
Привет всем, либа viberbot поддерживает отправку запросов с csrf token'ом?
Дмитрий
@Ussr-eng
если я использую ngrok нужны ssl сертификаты?
Дмитрий
@Ussr-eng
@Ussr-eng
Здравствуйте, подскажите пожалуйста, использую для создания viberbota flask и для локальной разработки использую ngrok выполняю все соглясно инструкции сначала запустил flask на 8000 порте потом в консоли выполняю команду ./ngrok http 8000, копирую сгенерированный https и вставляю в viber.set_webhook(''), но в последствии вижу следующую ошибку
raise Exception(u"failed with status: {0}, message: {1}".format(result['status'], result['status_message']))
Exception: failed with status: 1, message: Result[HttpRequest[POST / HTTP/1.1]@4f4997f7 > HttpResponse[null 0 null]@34564f37] java.util.concurrent.TimeoutException: Total timeout 5000 ms elapsed
Дмитрий
@Ussr-eng
все, уже решил
ttl22
@ttl22
My Viber Bot gets a one new subscriber every day. Just one every day. How does that happen ?
Denis
@cellmon
May be small marketing..
ttl22
@ttl22
@cellmon from viber ?
Denis
@cellmon
Yes, but I don't understand. Increase subscribers is good or bad?
Preslav Semov Hadzhitsanev
@preslavsh
Guys does anyone know something about the chat bot payments: https://www.viber.com/en/blog/2020-11-23/pay-in-chatbots-backup-media-and-all-thats-new-on-viber/ Have you tried them?
Denis
@cellmon
In my country this don't work .
Denis
@cellmon
Happy new year!
С новым годом!
Дмитрий
@Ussr-eng
🔥🚀🚀
erachkov
@erachkov

Всем, привет! Может кто подскажет - наткнулся на такую проблему, что на один запрос пользователя через кейфорд меню ("Type": "keyboard") формируеться два или более одинаковых сообщений к пользователю . Использую связку Python - Django -viberbot - возможно, что то не так с использованием KeyboardMessage(tracking_data='tracking_data'*

Лог
2021-01-05 21:37:06,909 - viber.bot.api - DEBUG - parsed request=ViberMessageRequest [event_type=message, timestamp=1609875426553, message_token=5527327842900394083,*
2021-01-05 21:37:10,327 - viber.bot.api - DEBUG - parsed request=ViberMessageRequest [event_type=message, timestamp=1609875359939, message_token=5527327563924652283,*
2021-01-05 21:37:14,317 - viber.bot.api - DEBUG - parsed request=ViberMessageRequest [event_type=message, timestamp=1609875426553, message_token=5527327842900394083

Denis
@cellmon
Тема очень старая. Особенно в девелоп режиме , на медленном интернете слабом жнлезе. Есть такая проблема и у Вайбера и у телеграм (вы должны сразу моментально отвечать серверу Вайбера 200ОК, а если обработка требует времени , делать ее в отдельном потоке питон это умеет, Джанго темболее , иначе возможен ответ как 2, так 3 и более сообщениями.
Есть
Как обрабатыаете запрос, возможно внешние АПИ....
Denis
@cellmon
вносят задержку
erachkov
@erachkov
@cellmon Спасибо - помогло )))
Denis
@cellmon
@erachkov , вы покажите ваше решение? Покажите всем. Чтоб мы в будущем идеально делали все
ttl22
@ttl22
When I delete the viber app(not account )which bot is registered - from the phone , will the bot still function?
Denis
@cellmon
@ttl22 yes, bot working.
mrfox1994
@mrfox1994

Как в viber на pyhonanywhere реализовать на REST API получение ботом сообщений? получилось реализовать WEB HOOK и отсылку сообщений с помощью REST API для бота VIBER (пример взят на habr), но не могу понять как получить и прочитать сообщение от пользователя. Есть eng инструкция на viber и переведенная в переводчике на question-it, но не понятно какие именно значения надо шифровать SHA256 и отправлять, кроме самого токена, чтобы получить ответ от сервера в формате json. Есть пример, но на PYTHON API на question-it и github, в котором идет сравнение двух значений зашифрованных в sha256 и отравленных на сервер get запросом в функции verify_signature. Первое значение это возврат (return) из функции _calculate_message_signature шифруется сам токен вместе с msg=request.get_data() (что это не понятно и как его выцепить REST API?), второе значение signature получается из шифрования SHA256 auth_token и msg=data.encode('ascii')(какое то значение data в формате ASCII)

вот шапка программы
import requests import json auth_token = '*' send_message = 'https://chatapi.viber.com/pa/send_message'

шифрование токена и некоторого значения MSG (без понятия что это)
```import hmac, hashlib

key = hmac.new(bytes(auth_token.encode('ascii')), digestmod=hashlib.sha256)
key.update(bytes(MSG.encode('ascii')))
hash_auth_token = key.hexdigest()
print(hash_auth_token)```

полагаю такой будет отправка запроса на REST API для получения ботом сообщения от пользователя
headers_callback = {'X-Viber-Content-Signature': hash_auth_token} response_callback = requests.get(send_message, headers=headers_callback) print(response_callback.json())

Denis
@cellmon
@mrfox1994 , Слишком очень много лишнего!! На хабр мою статью брали или php bogdan?
1 reply
Denis
@cellmon
@mrfox1994 Callback это реакция на сообщения, это не сообщения. Сами пользовательские сообщения это или текст, или картинки или файлы или геопозиция.. если пользователь напишет что-то боту вы в Json это увидите на сервере.
1 reply
mrfox1994
@mrfox1994
@cellmon хорошо понятно - тогда callback это методанные сообщения (его статус, id, время отправки авторство и т.д.), тогда как бот может прочитать сообщения от пользователя, если реализовать это на REST API если это вообще возможно?
Denis
@cellmon
@mrfox1994 не потянен вопрос, метаданные я игнорирую, а сообщения от пользователя с ними работаю . С ними все работают .сохраняем в бд, обрабатываем
mrfox1994
@mrfox1994
@cellmon хорошо. тогда как получить пользовательские сообщения? вы сказали они пересылаются в json, тогда как его получить?
Denis
@cellmon
Flask, bottle или Джанго или aiohttp? Это Не важно. Совсем неважно.Вам надо вскрыть реквест. Напишите в личное сообщение покажу строчки из Джанго
mrfox1994
@mrfox1994
@cellmon Flask не работает на pythonanywhere (https://help.pythonanywhere.com/pages/Flask/) , дополнительный модуль django будет занимать половину (240мб) из предоставляемого пространства (и пока не проверял работает ли он вообще или нет). про bottle и aiohttp пока не смотрел
mrfox1994
@mrfox1994
@cellmon в ваших примерах нет получения json с viber с сообщениями от пользователя, только callback, что пользователь является подписчиком.
Denis
@cellmon
пользователь шлет на сервера Viber - мы никак об этом не узнаем что там и как, но они пересылают в наш Webhook (на наш адрес) request - его мы разбираем и видим текст, viberID, аватарку и даже можно модель телефона и версию OС узнать! Номер телефона нельзя - для этого есть отдельный метод share-phone
mrfox1994
@mrfox1994
@cellmon разве viber id не находится через https://chatapi.viber.com/pa/get_account_info? то есть через webhook можно получать сообщения от пользователя или только общую информацию о сообщениях (методанные сообщения) или получается я вообще не смогу увидеть текст сообщений пользователя потому что он не может быть передан боту? (в телеграмм боте например можно в реальном времени смотреть на текст сообщений пользователей) а как же форма на developers.viber.com/docs/api/rest-bot-api/ для Receive message from user в котором есть поле json "message":{"type":"text","text":"a message to the service"}
Denis
@cellmon
Вебхук это ваш адрес для серверов Вайбера. Тот адрес куда они шлют все запросы от пользователей
Дмитрий
@Ussr-eng
Друзья, подскажите пожалуйста возможно вообще как то убрать количество подписаных на бота людей, отоброжается это значение в вайбере под именем бота, спасибо!
Denis
@cellmon
@Ussr-eng нет, нельзя. Это появилось и в десктоп клиенте уже. И Я считаю это очень правильно. В телеге наоборот прстот бот - и там можно расказывать сказки про его популярность. Разные платформы типо chatforma это используют. В нашем казино-боте 100500 тыс человек, а реально там 1,5 подписея. А Вайбер прозрачен в этом отношении.
Дмитрий
@Ussr-eng
@cellmon Спасибо за ваш ответю.
Никто не знает, API позволяет делать рассылку по номеру телефона?
Дмитрий
@Ussr-eng
нашел ответ
Denis
@cellmon
@Ussr-eng бизнес аккаунт, бизнес API позволяет по номеру ...
Tor
@Tor-Dev
@cellmon Подскажите, пожалуйста, как я могу cформатировать такой json для viber , чтоб это было в одном сообщении: По порядку (Текст->Картинка->Кнопка)
Или нужно обязательно RichMedia использовать?
Denis
@cellmon
2 варианта : Или ричмедия , или картинка с текстом а внизу кейборд.
Tor
@Tor-Dev
@cellmon какой формат json можете скинуть пожалуйста.
@Внизу кейборд будет кнопкой обычной или инлайн в сообщении?
Denis
@cellmon
обычной кнгопкой! Если инлайн то это 2м сообщением только
Tor
@Tor-Dev
image.png
Возможно ли не в бизнес сделать кнопки внутри сообщения как на скрине?
image.png
Denis
@cellmon
Прямо именно так невозможно
Tor
@Tor-Dev
Я понял спасибо!