繁体   English   中英

使用Azure Logic App通过HTTP Post(JSON)插入来自SurveyGizmo的响应

[英]Using Azure Logic App to Insert Response from SurveyGizmo via HTTP Post (JSON)

SurveyGizmo提供了一个“ webhook”,可将数据以JSON或简单的形式发布到给定的URL。 我需要将此数据插入Azure中的SQL Server数据库中。 我能够获取触发器(帖子)来启动应用程序,但是很难从提交的JSON中提取数据。

我使用webhook.site来获取通过SurveyGizmo发送的JSON示例。 我用它粘贴到触发器(HTTP请求)下的模式的“样本有效负载”中。 我在示例中看到了数据,字段名称等,但是在第二步(即SQL Server的插入记录)中,我似乎无法从中获取值。 我将在下面粘贴示例JSON。 当我在SQL部分下选择“参数”时,看到的是动态内容下的很多“答案”选择。 我在下面的示例中看到多次重复,因此我认为它只是无法正确读取模式,或者我需要写出模式。 有什么想法吗?

{
  "is_test_data": null,
  "session_id": "1567451759_5d6d6a6f705997.66294551",
  "language": "English",
  "date_started": "2019-09-02 15:15:59 EDT",
  "link_id": null,
  "url_variables": [

  ],
  "ip_address": "99.85.42.146",
  "referer": "https:\/\/app.surveygizmo.com\/builder\/test\/id\/5147523",
  "user_agent": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/70.0.3538.102 Safari\/537.36 Edge\/18.18362",
  "response_time": null,
  "data_quality": [

  ],
  "survey_data": {
    "3": {
      "id": 3,
      "type": "TEXTBOX",
      "question": "Please enter your email address.\u00a0 Doing so will allow you to retrieve your individual report at a later date.",
      "section_id": 1,
      "answer": "adan13@example.net",
      "shown": true
    },
    "119": {
      "id": 119,
      "type": "HIDDEN",
      "question": "org",
      "section_id": 1,
      "answer": "",
      "answer_id": 0,
      "shown": true
    }
}

我希望通过选择“ ip_address”例如该应用程序将插入“ 99.85.42.146”。 但是我在选择的领域(“参数”)一无所获。

在此处输入图片说明

据我了解,SurveyGizmo会将json数据发布到您的逻辑应用程序中,而您的逻辑应用程序将接受json数据并将部分数据插入到您的SQL Server中。 首先,您使用下面的JSON模式创建一个http触发器:

{
    "properties": {
        "data_quality": {
            "type": "array"
        },
        "date_started": {
            "type": "string"
        },
        "ip_address": {
            "type": "string"
        },
        "is_test_data": {},
        "language": {
            "type": "string"
        },
        "link_id": {},
        "referer": {
            "type": "string"
        },
        "response_time": {},
        "session_id": {
            "type": "string"
        },
        "survey_data": {
            "properties": {
                "3": {
                    "properties": {
                        "answer": {
                            "type": "string"
                        },
                        "id": {
                            "type": "integer"
                        },
                        "question": {
                            "type": "string"
                        },
                        "section_id": {
                            "type": "integer"
                        },
                        "shown": {
                            "type": "boolean"
                        },
                        "type": {
                            "type": "string"
                        }
                    },
                    "type": "object"
                },
                "119": {
                    "properties": {
                        "answer": {
                            "type": "string"
                        },
                        "answer_id": {
                            "type": "integer"
                        },
                        "id": {
                            "type": "integer"
                        },
                        "question": {
                            "type": "string"
                        },
                        "section_id": {
                            "type": "integer"
                        },
                        "shown": {
                            "type": "boolean"
                        },
                        "type": {
                            "type": "string"
                        }
                    },
                    "type": "object"
                }
            },
            "type": "object"
        },
        "url_variables": {
            "type": "array"
        },
        "user_agent": {
            "type": "string"
        }
    },
    "type": "object"
}

然后使用所需的配置创建一个SQL服务器插入操作。 在此演示中,我在sql服务器中创建了一个简单表,我将从JSON中提取ip_address,然后将其保存到SQL服务器: 在此处输入图片说明

在此处输入图片说明

由于已正确定义架构,因此您可以在此处选择所需的参数。

使用您提供的json数据保存并运行此逻辑应用,一切按预期进行: 在此处输入图片说明 在此处输入图片说明

如果您有任何不清楚的地方,请随时告诉我:)

嗨,迈克,如果您想使用自定义JSON数据测试此逻辑应用程序,则可以使用一些http客户端工具(例如邮递员或rest客户端)进行一些测试,如果成功触发它,您将获得202代码: 在此处输入图片说明

您可以在此处找到http触发网址: 在此处输入图片说明

如您所见,当我发布json时,将插入一个新的IP记录:

在此处输入图片说明

顺便说一句,我现在没有自由职业者,那么我可以提供什么帮助?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM