Skip to content

Instantly share code, notes, and snippets.

@machinas-achim
Forked from chusiang/teams-chat-post-for-workflows.sh
Last active August 25, 2022 13:30
Show Gist options
  • Select an option

  • Save machinas-achim/b4f52853c5e2a7acfa12be2a67d2269d to your computer and use it in GitHub Desktop.

Select an option

Save machinas-achim/b4f52853c5e2a7acfa12be2a67d2269d to your computer and use it in GitHub Desktop.
Post a message to Microsoft Teams with bash script.
#!/bin/bash
# =============================================================================
# Author: Chu-Siang Lai / chusiang (at) drx.tw
# Filename: teams-chat-post.sh
# Modified: 2021-10-18 00:09
# Description: Post a message to Microsoft Teams.
# Reference:
#
# - https://gist.github.com/chusiang/895f6406fbf9285c58ad0a3ace13d025
#
# =============================================================================
# Help.
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
echo 'Usage: teams-chat-post.sh "<webhook_url>" "<title>" "<color>" "<message>"'
exit 0
fi
# Webhook or Token.
WEBHOOK_URL=$1
if [[ "${WEBHOOK_URL}" == "" ]]
then
echo "No webhook_url specified."
exit 1
fi
shift
# Title .
TITLE=$1
if [[ "${TITLE}" == "" ]]
then
echo "No title specified."
exit 1
fi
shift
# Color.
COLOR=$1
if [[ "${COLOR}" == "" ]]
then
echo "No status specified."
exit 1
fi
shift
# Text.
TEXT=$*
if [[ "${TEXT}" == "" ]]
then
echo "No text specified."
exit 1
fi
# Convert formating.
#TEXT=$(echo "${TEXT}" | sed 's/"/\\"/g' | sed "s/'/\'/g")
TEXT=$(echo ${TEXT} | sed 's/"/\\"/g' | sed "s/'/\'/g")
JSON="{\"title\": \"${TITLE}\", \"themeColor\": \"${COLOR}\", \"text\": \"${TEXT}\" }"
# Post to Microsoft Teams.
curl -H "Content-Type: application/json" -d "${JSON}" "${WEBHOOK_URL}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment