python - Viber bot 不发送回复消息
问题描述
我有这个代码
from flask import Flask, request, Response
from viberbot import Api
from viberbot.api import viber_requests
from viberbot.api.bot_configuration import BotConfiguration
from viberbot.api.messages import VideoMessage
from viberbot.api.messages.text_message import TextMessage
import logging
from viberbot.api.viber_requests import ViberConversationStartedRequest, viber_request
from viberbot.api.viber_requests import ViberFailedRequest
from viberbot.api.viber_requests import ViberMessageRequest
from viberbot.api.viber_requests import ViberSubscribedRequest
from viberbot.api.viber_requests import ViberUnsubscribedRequest
app = Flask(__name__)
# сюда нужно вставить инфу со своего бота
viber = Api(BotConfiguration(
name='PythonSampleBot',
avatar='exemplepathtojpg',
auth_token=TOKEN
))
viber.set_webhook('where i find webgook?')
@app.route('/', methods=['POST'])
def incoming():
logging.Logger.debug("received request. post data: {0}".format(request.get_data()))
# every viber message is signed, you can verify the signature using this method
if not viber.verify_signature(request.get_data(), request.headers.get('X-Viber-Content-Signature')):
return Response(status=403)
# this library supplies a simple way to receive a request object
viber_request = viber.parse_request(request.get_data())
if isinstance(viber_request, ViberMessageRequest):
message = viber_request.message
# lets echo back
viber.send_messages(viber_request.sender.id, [
message
])
elif isinstance(viber_request, ViberSubscribedRequest):
viber.send_messages(viber_request.get_user.id, [
TextMessage(text="thanks for subscribing!")
])
elif isinstance(viber_request, ViberFailedRequest):
logging.Logger.warn("client failed receiving message. failure: {0}".format(viber_request))
return Response(status=200)
if __name__ == "__main__":
app.run(host='0.0.0.0', port=443, debug=True)
它是 python 上的一个简单的 viber bot(echo bot),但它不起作用,请告诉我为什么?另外,我不知道如何正确使用 webhook,我已经将部署上传到 heroku,我需要从 heroku 或哪里获取 webhook?
解决方案
推荐阅读
- iis - 将 IIS 配置为反向代理以重定向 WebLogic 服务器
- doxygen - 有没有办法在 doxygen 输出 html 中创建“未记录”条目?
- typescript - 我如何打字这个对象/数组?
- excel - 我有一个存储在 Amazon S3 中的 .xls 对象。有什么方法可以将它存储在 Java 中的 Workbook 对象中?
- asp.net-mvc - 维护实体框架迁移脚本
- python - 如何使用 Python 将我的 Linux 终端中显示的 JSON 数据写入 JSON 文件
- authorization - Swift 5 HttpRequest 授权不记名令牌
- ruby-on-rails - Rails 6 的 RSpec 测试问题
- python - 与postgres的数据库连接在python语言的服务器中不断断开
- javascript - 如何设置特定的预加载器