如何使用Logic App将来自Twilio的短信添加到Azure表存储中
我能够通过Twilio网络钩子将文本消息接收到Logic应用程序中。 关于 现在我需要将该文本添加到Azure表中。 我添加了一个解析JSON操作 我应该在内容和模式中添加什么? 我发现,如果在内容框内单击,系统会提示我从标记中选择。我想身体就是那个 [更新] 现在我正试图直接插入实体,但我无法在设计器中完成此操作。 如何展开实体文本框以便将JSON放入? [更新2] 我发现我可以通过键入实体文本框来展开它。但是如何插入消息文本? [更新3] 下面是我如何插入实体的 我能够将一条记录放入Azure存储表中。但我的短信正文在哪里 我可以看出运行时出现了问题 我想我需要从尸体中提取一具尸体,但我不知道如何提取 [更新4] 显示原始输入显示如何使用Logic App将来自Twilio的短信添加到Azure表存储中,twilio,azure-table-storage,azure-logic-apps,Twilio,Azure Table Storage,Azure Logic Apps,我能够通过Twilio网络钩子将文本消息接收到Logic应用程序中。 关于 现在我需要将该文本添加到Azure表中。 我添加了一个解析JSON操作 我应该在内容和模式中添加什么? 我发现,如果在内容框内单击,系统会提示我从标记中选择。我想身体就是那个 [更新] 现在我正试图直接插入实体,但我无法在设计器中完成此操作。 如何展开实体文本框以便将JSON放入? [更新2] 我发现我可以通过键入实体文本框来展开它。但是如何插入消息文本? [更新3] 下面是我如何插入实体的 我能够将一条记录放
{
"host": {
"connection": {
"name": "/subscriptions/somenumbers/resourceGroups/mydomain.com.au/providers/Microsoft.Web/connections/azuretables"
}
},
"method": "post",
"path": "/Tables/TextMessages/entities",
"body": {
"Message": {
"$content-type": "application/x-www-form-urlencoded",
"$content": "VG9Db3VudHJ5PUFVJlRvU3RhdGU9JlNtc01lc3NhZ2VTaWQ9U000MTU4YzU1YmVkNDNjZDFiNWZmMTNiODZiNjIyNzkyNSZOdW1NZWRpYT0wJlRvQ2l0eT0mRnJvbVppcD0mU21zU2lkPVNNNDE1OGM1NWJlZDQzY2QxYjVmZjEzYjg2YjYyMjc5MjUmRnJvbVN0YXRlPSZTbXNTdGF0dXM9cmVjZWl2ZWQmRnJvbUNpdHk9JkJvZHk9VGFrZSsyJkZyb21Db3VudHJ5PUFVJlRvPSUyQjYxNDQ3NDA1NjEzJlRvWmlwPSZOdW1TZWdtZW50cz0xJk1lc3NhZ2VTaWQ9U000MTU4YzU1YmVkNDNjZDFiNWZmMTNiODZiNjIyNzkyNSZBY2NvdW50U2lkPUFDN2FhZTMxM2UwZmRlOGVkZjE5YzhjMGY5NjQ1MTgwNjYmRnJvbT0lMkI2MTQxOTU3NTQxNSZBcGlWZXJzaW9uPTIwMTAtMDQtMDE=",
"$formdata": [
{
"key": "ToCountry",
"value": "AU"
},
{
"key": "ToState",
"value": ""
},
{
"key": "SmsMessageSid",
"value": "SM4158c55bed43cd1b5ff13b86b6227925"
},
{
"key": "NumMedia",
"value": "0"
},
{
"key": "ToCity",
"value": ""
},
{
"key": "FromZip",
"value": ""
},
{
"key": "SmsSid",
"value": "SM4158c55bed43cd1b5ff13b86b6227925"
},
{
"key": "FromState",
"value": ""
},
{
"key": "SmsStatus",
"value": "received"
},
{
"key": "FromCity",
"value": ""
},
{
"key": "Body",
"value": "Take 2"
},
{
"key": "FromCountry",
"value": "AU"
},
{
"key": "To",
"value": "+61447405613"
},
{
"key": "ToZip",
"value": ""
},
{
"key": "NumSegments",
"value": "1"
},
{
"key": "MessageSid",
"value": "SM4158c55bed43cd1b5ff13b86b6227925"
},
{
"key": "AccountSid",
"value": "AC7aae313e0fde8edf19c8c0f964518066"
},
{
"key": "From",
"value": "+61419575415"
},
{
"key": "ApiVersion",
"value": "2010-04-01"
}
]
},
"PartitionKey": "Twilio",
"RowKey": "1d5a06ca-9dbd-4ba9-b514-77904710ffc3"
}
}
[更新5]
我想我需要知道如何从@triggerBody()中获取body属性
[更新6]
我试过了
"body": {
"Message": "@triggerBody()['Body']",
"PartitionKey": "Twilio",
"RowKey": "@guid()"
}
但这会导致一个错误
即
[更新7]
我正在将HTTPRequest主体更改为使用JSON模式
"$content-type": "application/json",
而不是
"$content-type": "application/x-www-form-urlencoded",
[后注]
我这样做是因为Azure显示了一条警告消息
“记住在您的请求中包含一个设置为application/json的Content-Type头”,不过这两种方式似乎都可以
[更新8]
当我使用Azure时,我能够在Azure中接收消息
“消息”:“@triggerFormDataValue('Body')”根据命令,我更新了答案。 如果我们想向Azure表插入消息,我们可以通过直接输入json格式来构造表实体。更多详情请参考演示代码和屏幕截图 注意:Azure表实体需要PartionKey和Rowkey。
{
"Message": "@triggerFormDataValue('Body')",
"PartitionKey": "Twilio",
"RowKey": "@guid()"
}
您也可以仅使用逻辑应用程序操作来完成此操作 您可以使用Parse JSON数据操作来解析来自Twilio响应的JSON。正如您在问题中提到的,Twilio响应的“主体”将成为解析JSON操作的内容 要为schema字段生成模式,可以单击“使用示例负载生成模式”链接。粘贴在Twilio响应中预期返回的JSON负载中,例如:
{
"message: "A message from twilio"
}
然后,您可以使用Parse JSON操作的结果填充Azure表存储
可以通过解析JSON操作填充消息;分区密钥可以硬编码;RowKey可以基于表达式计算-
@guid()
这里需要注意的一点是Twilio webhook的内容类型不是application/json,因此不能使用parse json。它是application/x-www-url-formencoded。您仍然可以解析它,但需要使用表达式。如果打开表达式编辑器,则获取文本正文的方式如下:
triggerFormDataValue('正文')
来自的电话号码是
triggerFormDataValue('From')
您可以在触发器的输出中看到不同形式的片段。谢谢。我更新了我的问题以显示Parse JSON数据操作,但不确定如何填充它。我更新了我的问题以反映我试图遵循您的答案。我已经更新了答案,我发现我们不需要使用Parse JSON操作,我们可以直接在插入实体操作中构造enity。我更新了我的问题,以显示我尝试使用插入实体操作。我无法复制你的屏幕截图。我想直接在insert entity操作中构造json在insert entity操作中的“消息文本”来自何处?在我的例子中,“消息文本”只是为了测试。在您的情况下,您可以从您提到的屏幕中的正文中获得它。您可以通过单击
显示原始输入
来检查错误请求屏幕截图中的输入
。请参阅最新更新。我想我需要从“@triggerBody()”中提取正文。是否要获取正文值获取2
?调查我需要的值存储在@triggerBody()中的body属性中。调查我在HTTP请求中将内容类型从application/x-www-url-formencoded
更改为application/json
,两者都起作用了。根据Update8,我能够在插入实体操作中使用“Message”:“@triggerFormDataValue('Body')”。我更改内容类型的原因是Azure中显示了一个小的弹出警告。“记住在请求中包含一个设置为application/json的内容类型标题”我在问题的Update7部分中放了一个屏幕截图。
{
"message: "A message from twilio"
}