You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python替代运行时的Gmail插件中获取commonEventObject里的formInputs

解决Gmail插件无法获取commonEventObject中formInputs的问题

问题核心

当前按钮点击请求仅返回hostApp和platform,原因是按钮未关联任何用户输入的表单控件——formInputs仅在存在表单控件且按钮触发时提交表单数据的场景下,才会被包含在请求中。

解决方案步骤

1. 在卡片中添加带name属性的表单控件

需要在插件卡片内添加表单元素(如文本输入框、复选框等),并为每个控件设置唯一的name属性,该属性会作为formInputs中的键。示例卡片结构:

{
  "sections": [
    {
      "widgets": [
        {
          "textInput": {
            "name": "user_input",
            "label": "请输入内容",
            "hintText": "输入的内容会随按钮提交"
          }
        },
        {
          "buttonList": {
            "buttons": [
              {
                "text": "提交表单",
                "onClick": {
                  "action": {
                    "function": "https://myendpointaddress.run.app/click_action",
                    "parameters": []
                  }
                }
              }
            ]
          }
        }
      ]
    }
  ]
}

注意:表单控件必须设置name,否则无法在formInputs中捕获对应值。

2. 修改Flask端点代码解析formInputs

更新Flask代码,解析请求JSON数据并提取formInputs:

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/click_action', methods=['POST'])
def click_action():
    # 解析请求JSON
    request_data = request.get_json()
    # 获取commonEventObject
    common_event = request_data.get('commonEventObject', {})
    # 提取formInputs
    form_inputs = common_event.get('formInputs', {})
    
    # 打印或处理表单数据
    print("表单输入数据:", form_inputs)
    # 示例:提取名为user_input的控件值
    user_input = form_inputs.get('user_input', {}).get('stringInputs', {}).get('value', [])[0] if form_inputs.get('user_input') else None
    print("用户输入内容:", user_input)
    
    return jsonify({"status": "success"}), 200

3. 验证请求结构

用户在表单输入内容并点击按钮后,请求的commonEventObject会包含formInputs,结构示例:

"commonEventObject": {
  "hostApp": "GMAIL",
  "platform": "WEB",
  "formInputs": {
    "user_input": {
      "stringInputs": {
        "value": ["用户输入的具体内容"]
      }
    }
  }
}

关键说明

  • formInputs仅在存在用户交互的表单控件时才会被发送,无表单控件的按钮点击不会携带该字段。
  • 不同类型表单控件(如复选框、下拉框)在formInputs中的结构略有差异,需根据控件类型解析对应值(比如复选框对应boolInputs)。

内容的提问来源于stack exchange,提问作者Max Kessler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 14:05:18