使用python和git通过Google Sheets集成创建Slackbot

时间:2018-02-06 16:13:49

标签: python git google-sheets

我叫肯。我正在尝试每周一上午9:00创建一个Slack Bot第一条消息,并要求输入(本周的销售目标数)。然后在新消息中回复用户输入说明(每周的销售目标很好(#)。然后它将这个数字添加到Google表格中。然后要求用户输入当天的每日目标。并回复(每日目标设定) as)。然后在晚上9点要求用户输入所写的交易数量,并跟踪Google表格中的所有数据并提供图表。我一直在想也许MySQL也适用于此。

以下是我目前的一些代码: starterbot.py

import os
import time
from slackclient import slackclient

# starterbot's ID as an environment variable
BOT_ID = os.environ.get("BOT_ID")

# contasts
AT_BOT = "<@" + BOT_ID + ">"
EXAMPLE_COMMAND = "do"


#instantiate Slack & Twilio clients
slack_client = SlackClient(os.environ.get('SLACK_BOT_TOKEN'))


def handle_command (command, channel)
     """
        Receives commnds directed at the bot and determines if they
        are valid commands. if so, then acts on the commands. if not, 
        returns back what it needs for clarification.
     """
     response = "Not sure what you mean. Use the *" + EXAMPLE_COMMAND + \
                "* command with numbers, delimited by spaces."
                if command.startswitch(EXAMPLE_COMMAND):
                    response = "Sure ... wire some more c ie then I can do 
that!"
                slack_client.api_call("chat.postMessage", channel=channel,
                                        text=response, as_user=True)


def parse_slack_output(slack_messages):
    """
        The Slack Real Time Messaging API is an event firehose. 
        this parsing function returns None unless a message is 
        directed at the Bot, based on its ID.
    """


    if slack_messages and len(slack_messages) > 0;
        for message in slack_messages:
            if message and 'text' in message and AT_BOT in message['text']:

                command = message['text'].split(AT_BOT)[1].strip().lower()
                channel = message['channel']
                # return text after the @ mention, white space removed
                return command, channel

    return None, None




if __name__ == "__main__":
    READ_WEBSOCKET_DELAY = 1 # 1 second delay between reading from firehose
    if slack_client.rtm_connect():
        print("starterbot connected and running!")
        while True:
            command, channel = parse_slack_output(slack_client.rtm_read())
            if command and channel:
                handle_command(command, channel)
            time.sleep(READ_WEBSOCKET_DELAY)
else: 
    print("Connection failed. Invalid Slack token or bot ID?")

bot_id_py

import os
from slackclient import SlackClient
import pdb


BOT_NAME = 'pilot4u'

slack_client = SlackClient(os.environ.get('SLACK_BOT_TOKEN'))


if __name__ == "__main__":
    api_call = slack_client.api_call("users.list")
if api_call.get('members'):
        pdb.set_trace()
       # Retrieve all users so we can find our bot
       users = api_call.get('members')
       for user in users:
            if 'name' in user and user.get('name') == BOT_NAME:
                print("Bot ID for '" + user ['name'] + "'is " + 
 user.get('id'))
else: 
    print("could not find bot user with the name " + BOT_NAME)

0 个答案:

没有答案