1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

callbacks/slack: Explicitly set Content-Type header (#51824)

There are other chat systems with hook implementations more or less
compatible with Slack, such as Rocket.Chat. The latter requires the
Content-Type header to be set to "application/json" (the body is JSON).

Signed-off-by: Michael Hanselmann <public@hansmi.ch>
This commit is contained in:
hansmi 2019-02-12 18:47:33 +01:00 committed by Sam Doran
parent 7fbacf920d
commit 76ab88c9f5
2 changed files with 10 additions and 1 deletions

View file

@ -0,0 +1,4 @@
minor_changes:
- >-
slack: Explicitly set Content-Type header to "application/json" for
improved compatibility with non-Slack chat systems

View file

@ -114,6 +114,10 @@ class CallbackModule(CallbackBase):
'variable.')
def send_msg(self, attachments):
headers = {
'Content-type': 'application/json',
}
payload = {
'channel': self.channel,
'username': self.username,
@ -127,7 +131,8 @@ class CallbackModule(CallbackBase):
self._display.debug(data)
self._display.debug(self.webhook_url)
try:
response = open_url(self.webhook_url, data=data, validate_certs=self.validate_certs)
response = open_url(self.webhook_url, data=data, validate_certs=self.validate_certs,
headers=headers)
return response.read()
except Exception as e:
self._display.warning(u'Could not submit message to Slack: %s' %