import hashlib
import hmac
import os
+import boto3
+
+if 'SLACK_SIGNING_SECRET' in os.environ:
+ slack_signing_secret = os.environ['SLACK_SIGNING_SECRET']
+else:
+ ssm = boto3.client('ssm')
+ response = ssm.get_parameter(Name='SLACK_SIGNING_SECRET',
+ WithDecryption=True)
+ slack_signing_secret = response['Parameter']['Value']
+ os.environ['SLACK_SIGNING_SECRET'] = slack_signing_secret
slack_signing_secret = bytes(os.environ['SLACK_SIGNING_SECRET'], 'utf-8')
else:
print("Bad signature: {} != {}".format(signature, slack_signature))
return False
+
+def slack_channel_members(slack_client, channel_id):
+ members = []
+
+ cursor = None
+ while True:
+ if cursor:
+ response = slack_client.conversations_members(channel=channel_id,
+ cursor=cursor)
+ else:
+ response = slack_client.conversations_members(channel=channel_id)
+
+ if response['ok']:
+ members += response['members']
+ else:
+ print("Error querying members of channel {}: {}"
+ .format(channel_id, response['error']))
+ return members
+
+ cursor = None
+ if 'next_cursor' in response['response_metadata']:
+ cursor = response['response_metadata']['next_cursor']
+
+ if not cursor or cursor == '':
+ break
+
+ return members
+
+def slack_send_message(slack_client, channel_id, text):
+ slack_client.chat_postMessage(channel=channel_id, text=text)