【问题标题】:Python - Slack outgoing webhook to TelegramPython - 到 Telegram 的 Slack 传出 webhook
【发布时间】:2016-12-09 07:50:05
【问题描述】:

我正在开发一个 webhook,它将 Telegrams 消息发送到 Slack 并将 Slack 消息发送到 Telegram;现在我可以向 Slack 发送 Telegram 消息,但我无法从 Slack 向 Telegram 发送消息,因为我不知道如何获取数据。正如 Slack 文档所述,POST 请求中发送的数据是这样的:

token=XXXXXXXXXXXXXXXXXX
team_id=T0001
team_domain=example
channel_id=C2147483705
channel_name=test
timestamp=1355517523.000005
user_id=U2147483697
user_name=Steve
text=googlebot: What is the air-speed velocity of an unladen swallow?
trigger_word=googlebot:

内容类型为application/x-www-form-urlencoded

我想从该数据中获取user_nametext

在我的 Flask 代码上,我什么都没有,因为我不知道如何接收该数据或如何在控制台上看到它,所以我可以尝试提取它并将其发送到 Telegram,这是唯一的我为 Slack webhook 拥有的东西只是因为我想看看它是否正常工作,我认为这些代码行现在不相关:

@app.route("/" + SLACK, methods=['POST'])
def slack_handler():
    if request.method == "POST":
        return "POST"

这就是我的问题;我怎样才能接收、存储这些数据?如果我应该解释更多我的问题,请告诉我并感谢您的帮助。

【问题讨论】:

    标签: python flask telegram slack


    【解决方案1】:

    只要您的 slack webhook 配置正确,您就应该能够将其视为表单。以下应该工作-

    from flask import Flask, request
    
    slack_webhook = your_webhook_here
    @app.route('/slack', methods=['POST'])
    def slack():
        if request.form.get('token') == slack_webhook:
             channel = request.form.get('channel')
             username = request.form.get('username')
             return "Channel: " + channel + "Username: " + username
        else:
           return "None found"
    

    阅读这篇文章以了解更多信息 - realpython.com

    【讨论】:

    • 你好,我试过这样做,但我没有从中得到任何东西;我的意思是,从您发布的链接中,我关注了一些事情并下载了 ngrok,我确实收到了 POST 请求,但我无法获取数据,我尝试将其打印到控制台,但在 ngrok 中它没有打印任何内容检查页面我可以看到每个请求和正文,你知道会发生什么吗?
    • 没关系!不知怎的,它被 Telegram 请求弄糊涂了,它现在可以工作了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-17
    • 2018-03-12
    • 2017-07-14
    • 2018-04-16
    • 2016-01-23
    • 2020-09-22
    • 1970-01-01
    相关资源
    最近更新 更多