使用传入的webhook将消息从SQL发布到Slack通道

时间:2017-06-01 16:03:43

标签: sql slack exact-online invantive-sql

我想使用Slack传入的webhooks和Invantive SQL将基于Exact Online的查询的消息发送到Slack通道。

如果没有大量的SQL函数来正确地转义JSON,我该怎么做?

1 个答案:

答案 0 :(得分:1)

经过一些尝试,我发现这个工作正常:

select to_char
       ( httppost
         ( 'https://hooks.slack.com/services/XXX/YYY/zzzzzzzzz'
         , 'application/json'
         , to_binary
           ( '{'
             || jsonencode('channel')
             || ': '
             || jsonencode('#test')
             || ', '
             || jsonencode('username')
             || ': '
             || jsonencode('testuser')
             || ', '
             || jsonencode('text')
             || ': '
             || jsonencode('Companies in city of ' || act.city || ': ' || act.companynames)
             || '}'
           )
         )
       )
from   ( select act.city
         ,      listagg(act.name) companynames
         from   exactonlinerest..accounts act
         where  act.city in ( 'Haelen', 'Horn', 'Heythuysen')
         group 
         by     act.city
       )

HTTP POST不是很优雅,因为它有副作用,但它可以完成这项任务。