
Emfolgavocê pode criar um script para o slackbot postar mensagens em um canal como este:
curl --data "$msg" $'https://<yourteam>.slack.com/services/hooks/slackbot?token=<yourtoken>&channel=#random'
Agora eu gostaria de mencionar um nome de usuário como a primeira parte da mensagem, como msg="@joernhees hello self"
.
O problema com isso é que se o --data
argumento curl começar com um @
sinal, ele interpretará a string após o @
nome do arquivo e postará seu conteúdo. Existe uma maneira de fazer o curl ignorar o @
sinal e enviar um literal @
como o primeiro caractere de uma solicitação de postagem?
Responder1
Na verdade, acabei de descobrir que posso fazer isso (mas não tenho certeza se é a melhor opção):
curl --data '@-' $'https://<yourteam>.slack.com/services/hooks/slackbot?token=<yourtoken>&channel=#random' <<< "$msg"
O truque é dizer ao curl para ler stdin @-
e depois passar a mensagem por meio dele.
Responder2
Eu sei que esta é uma pergunta antiga, mas tive o mesmo problema e a correção acabou sendo usada --data-raw
para situações normais (vejahttps://curl.se/docs/manpage.html#--data-raw) ou --form-string
para dados multipartes (consultehttps://curl.se/docs/manpage.html#--form-string). Assim, aqui você provavelmente usaria:
curl --data-raw "$msg" 'https://<yourteam>.slack.com/services/hooks/slackbot?token=<yourtoken>&channel=#random'