我可以通过Twilio Web Hook在Logic App中收到短信。 as set up by following these instructions
关于my question here
现在我需要将该文本添加到Azure表中。
我添加了一个Parse JSON动作
我应该在内容和架构中加入什么?
我发现如果我在内容框中单击,系统会提示我从标签中选择。我猜Body就是那个。
[更新]
现在我试图直接插入实体,但我不知道如何在设计器中执行此操作。
如何展开“实体”文本框以将JSON放入?
[UPDATE2]
我发现我可以通过输入来扩展Entity文本框。但是如何插入MessageText?
[UPDATE3]
以下是我执行插入实体的方法
我能够获得Azure存储表的记录。但是我的短信的正文在哪里?
我想我需要从身体中提取身体,但我不知道如何
[UPDATE4]
显示原始输入显示
{
"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"
}
}
[Update5]
我想我需要知道如何从@triggerBody()
中获取body属性[Update6]
我试过
"body": {
"Message": "@triggerBody()['Body']",
"PartitionKey": "Twilio",
"RowKey": "@guid()"
}
但这会导致错误
即
InvalidTemplate. Unable to process template language expressions in action 'Insert_Entity' inputs at line '1' and column '1450': 'The template language expression 'triggerBody()['Body']' cannot be evaluated because property 'Body' doesn't exist. Property selection is not supported on content of type 'application/x-www-form-urlencoded'. Please see https://aka.ms/logicexpressions for usage details.'.
[Update7]
我正在更改HTTPRequest主体以使用JSON Schema
"$content-type": "application/json",
而不是
"$content-type": "application/x-www-form-urlencoded",
[后来的说明] 我这样做是因为Azure显示了一条警告消息 “请记住在请求中包含一个Content-Type标头集到application / json”但它似乎无论如何都有效。
[Update8]
当我使用
时,我能够在Azure中收到消息“消息”:“@ turiggerFormDataValue('Body')”
答案 0 :(得分:0)
您也可以仅使用Logic App操作执行此操作。
您可以使用Parse JSON数据操作来解析来自Twilio响应的JSON。 "身体"如你在问题中提到的,你的Twilio响应成为Parse JSON动作的内容。
要为Schema字段生成架构,您可以单击"使用示例有效负载生成架构"链接。粘贴在Twilio响应中预期的JSON有效负载,例如:
{
"message: "A message from twilio"
}
然后,您可以使用Parse JSON操作的结果填充Azure表存储。
可以从Parse JSON操作填充消息;分区密钥可以硬编码; RowKey可以基于表达式 - @guid()
来计算。
答案 1 :(得分:0)
这里要注意的一件事是Twilio webhook的内容类型不是application / json,所以你不能使用解析JSON。它是application / x-www-url-formencoded。您仍然可以解析它,但需要使用表达式。如果打开表达式编辑器,获取文本正文将是:
triggerFormDataValue('身体&#39)
FROM电话号码
triggerFormDataValue('从&#39)
您可以在触发器的输出中看到不同的表单。