#!/bin/bash # ============================================================================= # Author: Chu-Siang Lai / chusiang (at) drx.tw # Filename: teams-chat-post.sh # Modified: 2024-07-12 18:49 (UTC+08:00) # Description: Post a message to Microsoft Teams via connectors, not support # Power Automate workflows. # Reference: # # - https://gist.github.com/chusiang/895f6406fbf9285c58ad0a3ace13d025 # - https://devblogs.microsoft.com/microsoft365dev/retirement-of-office-365-connectors-within-microsoft-teams/ # - Fixed for workflows edition: https://gist.github.com/chusiang/895f6406fbf9285c58ad0a3ace13d025?permalink_comment_id=5119162#gistcomment-5119162 # # ============================================================================= # Help. if [[ "$1" == "-h" || "$1" == "--help" ]]; then echo 'Usage: teams-chat-post.sh "" "" "<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. MESSAGE=$(echo ${TEXT} | sed 's/"/\"/g' | sed "s/'/\'/g") JSON="{ \"title\": \"${TITLE}\", \"themeColor\": \"${COLOR}\", \"text\": \"${MESSAGE}\" }" # Post to Microsoft Teams. curl -H "Content-Type: application/json" -d "${JSON}" "${WEBHOOK_URL}"