@staticmethod
def _extract_command(slack_data, bot_id):
    """

        The Slack Real Time Messaging API is an events firehose. this parsing function
        returns None unless a message is directed at the Bot, based on its ID.

        Extracts the channel, user and command from the slack data. If the data does
        not contain a command for the bot, then "None, None, None" is returned.

        :param slack_data: The data to check
        :type slack_data: dict
        :param bot_id: ID of the bot, looks like "<@AABB1122CC>"
        :type bot_id: str
        :return: user, channel, and command
        """
    if slack_data and len(slack_data) > 0:
        if 'text' in slack_data:
            if bot_id in slack_data['text']:
                return slack_data['user'], slack_data['channel'], slack_data[
                    'text'].split(bot_id)[1].strip()
    return None, None, None
