如何解决使用 PowerApps AzureServiceBus 连接器 SendMessage ContentData
我尝试使用的 PowerApps - Azure 服务总线连接器功能定义为:
ServiceBus.SendMessage(EntityName:Text,{systemProperties :Text,ContentData:Blob,ContentType:Text,Properties:Table,MessageId:Text,To:Text,ReplyTo:Text,ReplyToSesionId:Text,Label:Text,ScheduledEnquequeTimeUtc:DateTime,SessionId:Text,CorrelationId:Text,SequenceNumber:Number,LockToken:Text,TimeToLive:Text})
如您所见,ContentData 是 Blob 类型,而 PowerApps 似乎无法将文本字符串转换为 Blob。因此,尽管下面将发送消息,但在服务总线资源管理器或接收应用程序中检查时内容为空。请注意,在收到的消息中可以看到 Properties 表数据和 Label 值。
ServiceBus.SendMessage("TestTopic",{ContentData:"HelloWorld",Label:"MyLabel",Properties:Table({key:"MyUserDefinedKey",value:"MyUserDefinedKeyValue"})})
是否有直接用文本填充 ContentData 的方法?我希望使用 PowerApp 文本输入。
我尝试将 ContentType 和 ContentData 更改为各种选项,但没有成功。
解决方法
据我所知 in the docs,ContentData
的数据类型是 bytes
,我认为 PowerApps 不支持(查找支持的数据类型 here)。
可以尝试的一件事是:ContentData: JSON("Hello World",JSONFormat.IncludeBinaryData)
这是我所知道的在 PowerApps 中处理二进制数据的唯一方法,但我不确定它是否会编码文本。
,您可以使用 Properties 参数在 Power Apps 服务总线连接器 SendMessage 调用中发送自定义属性。 Properties 参数采用包含特定行的键值对的表。
我没有找到详细记录的 ContentData 参数。在我的测试中,它采用强制 base64 编码的数据 URI 字符串值。不幸的是,在 canvas Power App 中没有内置的 base64 编码方式。如果参数值的格式不正确,则生成的 Servivce Bus 队列消息将具有空的 ContentData 值。下面是一个将新消息发送到队列的示例,设置代理属性:标签和三个自定义属性,以及文本“Hello world!”在 ContentData 参数中。
示例:
ServiceBus.SendMessage("p1imagecaptureevents",{ContentType:"text/plain",Properties:Table (
{key: "Label",value: "labelvalue2"},{key: "myFirstFieldName",value: "'My first field's value8'"},{key: "mySecondFieldName",value: "My second field's value5"},{key: "myOtherFieldName",value: "More values5"}),ContentData:"data:text/plain;base64,SGVsbG8gd29ybGQh" // "Hello world!" base64 encoded text
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。