Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Google表单提交事件触发器被Flask网站捕获以更新该网站?_Flask_Google Apps Script_Google Sheets_Google Sheets Api_Google Forms - Fatal编程技术网

如何让Google表单提交事件触发器被Flask网站捕获以更新该网站?

如何让Google表单提交事件触发器被Flask网站捕获以更新该网站?,flask,google-apps-script,google-sheets,google-sheets-api,google-forms,Flask,Google Apps Script,Google Sheets,Google Sheets Api,Google Forms,我有一个写在Flask上的网站,我想在谷歌表单的答案提交后更新它 更准确地说,我已经将表单与谷歌电子表格相关联,我可以从Flask中读取该电子表格,但缺少的关键组件是如何在新答案提交到表单时触发网站更新其内容 最好的方法是什么?您可以创建一个表单提交触发器来触发一个Google应用程序脚本函数,该函数调用您的Flask站点并触发更新 您可以创建一个表单提交触发器来触发一个Google应用程序脚本函数,该函数调用您的Flask站点并触发更新 Webhook解决方案: 谷歌表单: from http

我有一个写在Flask上的网站,我想在谷歌表单的答案提交后更新它

更准确地说,我已经将表单与谷歌电子表格相关联,我可以从Flask中读取该电子表格,但缺少的关键组件是如何在新答案提交到表单时触发网站更新其内容


最好的方法是什么?

您可以创建一个表单提交触发器来触发一个Google应用程序脚本函数,该函数调用您的Flask站点并触发更新


您可以创建一个表单提交触发器来触发一个Google应用程序脚本函数,该函数调用您的Flask站点并触发更新

Webhook解决方案: 谷歌表单:

from http import HTTPStatus
from flask import (
    abort,
    request
)


@blueprint.route('/webhook', methods=['POST'])
def handle_webhook():

    payload = request.get_json()

    if payload.get('token') != "sometokenheretocheckonbackend":
        abort(HTTPStatus.UNAUTHORIZED)

    # Update your content

    return jsonify({'success': True}), HTTPStatus.OK

  • 进入谷歌表单编辑器
  • 单击配置文件图片旁边的3个垂直点,然后选择“脚本编辑器”
  • 将此代码段自定义为您的WebHook url并设置自定义标记(这不是真正安全的,但总比没有好)
  • (可能会弹出一个对话框,您必须批准连接到未经授权的服务)

    在烧瓶侧处理:

    from http import HTTPStatus
    from flask import (
        abort,
        request
    )
    
    
    @blueprint.route('/webhook', methods=['POST'])
    def handle_webhook():
    
        payload = request.get_json()
    
        if payload.get('token') != "sometokenheretocheckonbackend":
            abort(HTTPStatus.UNAUTHORIZED)
    
        # Update your content
    
        return jsonify({'success': True}), HTTPStatus.OK
    
    
    定期更新(替代解决方案): <>我会考虑启动一个守护进程线程,它周期性地更新这个内容。这显然没有那么优雅,但应该工作得相当稳定,如果内容更新过程相当轻量级,对服务器的要求也不会太高。

    Webhook解决方案: 谷歌表单:

    from http import HTTPStatus
    from flask import (
        abort,
        request
    )
    
    
    @blueprint.route('/webhook', methods=['POST'])
    def handle_webhook():
    
        payload = request.get_json()
    
        if payload.get('token') != "sometokenheretocheckonbackend":
            abort(HTTPStatus.UNAUTHORIZED)
    
        # Update your content
    
        return jsonify({'success': True}), HTTPStatus.OK
    
    
  • 进入谷歌表单编辑器
  • 单击配置文件图片旁边的3个垂直点,然后选择“脚本编辑器”
  • 将此代码段自定义为您的WebHook url并设置自定义标记(这不是真正安全的,但总比没有好)
  • (可能会弹出一个对话框,您必须批准连接到未经授权的服务)

    在烧瓶侧处理:

    from http import HTTPStatus
    from flask import (
        abort,
        request
    )
    
    
    @blueprint.route('/webhook', methods=['POST'])
    def handle_webhook():
    
        payload = request.get_json()
    
        if payload.get('token') != "sometokenheretocheckonbackend":
            abort(HTTPStatus.UNAUTHORIZED)
    
        # Update your content
    
        return jsonify({'success': True}), HTTPStatus.OK
    
    
    定期更新(替代解决方案):
    <>我会考虑启动一个守护进程线程,它周期性地更新这个内容。这显然没有那么优雅,但应该工作得相当稳定,如果内容更新过程相当轻量级,对服务器的要求也不会太高。

    谢谢你。我很想知道我应该在Flask中使用哪一个python模块来实现这一点,理想的情况是使用一段代码,在Google端使用哪些函数,在Flask端使用哪些函数。嗨,Michael,不幸的是,在Flask端我帮不上忙,我以前没有使用过ti。您需要一种从应用程序脚本端接收HTTP请求的方法。谢谢您。我很想知道我应该在Flask中使用哪一个python模块来实现这一点,理想的情况是使用一段代码,在Google端使用哪些函数,在Flask端使用哪些函数。嗨,Michael,不幸的是,在Flask端我帮不上忙,我以前没有使用过ti。您需要一种从应用程序脚本端接收HTTP请求的方法。非常感谢Kristof提供的此解决方案,它似乎正是解决此问题的解决方案。非常感谢Kristof提供的此解决方案,它似乎正是解决此问题的解决方案。