|
|
@ -0,0 +1,41 @@ |
|
|
|
import os |
|
|
|
from slackclient import SlackClient |
|
|
|
import argparse |
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
parser = argparse.ArgumentParser(description="Slack notification script") |
|
|
|
parser.add_argument('--channel','-c', required=True, help="Slack channel.") |
|
|
|
parser.add_argument('--message','-m', required=True, help="The message to send.") |
|
|
|
parser.add_argument('--username', required=False, help="Username used on Slack") |
|
|
|
parser.add_argument('--api_token', required=False, help="Slack API token. Can be set in SLACK_API_TOKEN environment variable too.") |
|
|
|
parser.add_argument('--icon_emoji','-i', required=False, help="Icon for the message.") |
|
|
|
args = parser.parse_args() |
|
|
|
|
|
|
|
username = args.username |
|
|
|
api_token=args.api_token |
|
|
|
if api_token is None: |
|
|
|
api_token=os.getenv("SLACK_API_TOKEN") |
|
|
|
message = args.message |
|
|
|
channel = args.channel |
|
|
|
icon_emoji = args.icon_emoji |
|
|
|
|
|
|
|
slack_client = SlackClient(api_token) |
|
|
|
apitest = slack_client.api_call("api.test") |
|
|
|
if not apitest['ok']: |
|
|
|
raise ValueError("api.test error: {0}".format(apitest['error'])) |
|
|
|
|
|
|
|
authtest = slack_client.api_call("auth.test") |
|
|
|
if not authtest['ok']: |
|
|
|
raise ValueError("auth.test error: {0}".format(authtest['error'])) |
|
|
|
|
|
|
|
if username is None: |
|
|
|
username = authtest['user'] |
|
|
|
|
|
|
|
if icon_emoji is None: |
|
|
|
result = slack_client.api_call("chat.postMessage", channel=channel, text=message, username=username, icon_emoji=icon_emoji) |
|
|
|
else: |
|
|
|
result = slack_client.api_call("chat.postMessage", channel=channel, text=message, username=username) |
|
|
|
|
|
|
|
if not result['ok']: |
|
|
|
raise ValueError("Message error: {0}".format(result['error'])) |
|
|
|
|