Python:在MS团队自适应卡中未获得消息回操作的响应

Python:在MS团队自适应卡中未获得消息回操作的响应,python,json,flask,bots,microsoft-teams,Python,Json,Flask,Bots,Microsoft Teams,我是Python新手,一直在尝试使用即将推出的webhook将Python与MS团队集成。我已经使用flask创建了一个简单的web服务来处理post请求,我正在使用ngrok托管它,ngrok生成的URL已经用作团队中传出的webhook回调URL 我能够在我的服务中接收消息并发送自适应卡作为响应。但如果我填写信息并点击提交,我会发现“出了问题”。“请重试”错误,我的服务中没有收到任何内容 我们将非常感谢您的帮助 您是否可以尝试在web浏览器中打开团队,以共享在单击“提交”按钮时收到的控制台日

我是Python新手,一直在尝试使用即将推出的webhook将Python与MS团队集成。我已经使用flask创建了一个简单的web服务来处理post请求,我正在使用ngrok托管它,ngrok生成的URL已经用作团队中传出的webhook回调URL

我能够在我的服务中接收消息并发送自适应卡作为响应。但如果我填写信息并点击提交,我会发现“出了问题”。“请重试”错误,我的服务中没有收到任何内容

我们将非常感谢您的帮助


您是否可以尝试在web浏览器中打开团队,以共享在单击“提交”按钮时收到的控制台日志。它也会在单击方法时点击on_message_activity()方法。您是否可以尝试在web浏览器中打开团队共享您在单击提交按钮时收到的控制台日志。它还会在单击方法时单击on_message_activity()方法。
from flask import Flask, request, jsonify
import hmac, hashlib, base64
app = Flask(__name__)


@app.route('/testjson',methods = ['POST', 'GET'])
def webhook():
    try:
        if request.method == 'POST':

            # Reply
            data = request.get_json()
            channel = data['channelId']
            message_type = data['type']
            sender = data['from']['name']
            sender_id = data['from']['id']
            message_format = data['textFormat']
            message = data['text']
            conversation_id = data['conversation']['id']

            # Authenticate
            security_token = b"sWYCgxib4hRcuHSKcKJk6w8FF6dVOa3mgmgK6thBMBg="
            request_data = request.get_data()
            digest = hmac.new(base64.b64decode(security_token), msg=request_data,
                              digestmod=hashlib.sha256).digest()
            signature = base64.b64encode(digest).decode()

            # Verify that HMAC header == signature
            if request.headers.get('Authorization').split(' ')[1] == signature:
                return jsonify({
                        "type": "message",
                        "text": "hi",
                        "attachments": [{
                            "contentType": "application/vnd.microsoft.card.adaptive",
                            "content": {
                                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
                                "type": "AdaptiveCard",
                                "version": "1.0",
                                "body": [
                                    {
                                        "type": "TextBlock",
                                        "text": "Present a form and submit it back to the originator"
                                    },
                                    {
                                        "type": "Input.Text",
                                        "id": "firstName",
                                        "placeholder": "What is your first name?"
                                    },
                                    {
                                        "type": "Input.Text",
                                        "id": "lastName",
                                        "placeholder": "What is your last name?"
                                    }
                                ],
                                "actions": [
                                    {
                                        "type": "Action.Submit",
                                        "title": "Submit",
                                        "data": {
                                             "msteams": {
                                                "type": "messageBack",
                                                "displayText": "I clicked this button",
                                                "text": "text to bots",
                                                "value": "{\"bfKey\": \"bfVal\", \"conflictKey\": \"from value\"}"
                                            }
                                        }
                                    }
                                ]
                            }
                        }]
                    })
        else:
            print("hi")

    except Exception as ex:
        print(ex)


if __name__ == '__main__':
    app.run(debug=True)