【问题标题】:How to distinguish two different calls to the same Flask webhook?如何区分对同一个 Flask webhook 的两个不同调用?
【发布时间】:2019-08-17 20:48:55
【问题描述】:

我正在使用 Heroku 平台放置简单的 webhook,它是用 python 编写的,使用 Flask。我使用的云系统向我的 webhook 发送 POST 请求,向我发送一些数据,我应该做出响应。

我想记录所有请求和响应。 有时,云系统可能会再次向我的 webhook 发送相同的请求(无论出于何种原因 - 我没有在指定的时间或类似的时间发送响应)。

我想区分这样的请求。如果我只是将关于我得到的信息放入日志中,我可能会在我的日志中看到如下内容:

1) 开始处理请求(第一个请求)

2) 开始处理请求(第二个请求)

3) 计算响应(第一个请求)

4) 计算响应(第二个响应)

我想为每一行添加一些唯一标识符,例如会话 ID,以过滤属于同一进程的所有条目。

这怎么可能?

这里是示例代码:

# import of necessary modules
import modules

app = Flask(__name__)
app.config.from_json('config.json')


@app.route("/", methods=['GET', 'POST'])
def index():
    body = request.data
    signature = request.headers['x-pyrus-sig']
    secret = str.encode(app.config['SECRET_KEY'])

    if _is_signature_correct(body, secret, signature):
        return _prepare_response(body.decode('utf-8'))


def _is_signature_correct(message, secret, signature):
    ...
    # Verifying that request is from trusted source

def _prepare_response(body):
    ...
    # Sending the response

if __name__ == "__main__":
    app.run()

【问题讨论】:

    标签: python heroku flask webhooks


    【解决方案1】:

    似乎与其试图从系统中找到唯一的会话 id,不如自己生成。

    类似这样的: How can I generate a unique ID in Python?

    【讨论】:

      猜你喜欢
      • 2010-10-13
      • 2013-10-21
      • 2023-03-18
      • 2011-02-11
      • 2011-12-29
      • 2021-11-13
      • 2023-04-09
      相关资源
      最近更新 更多