创建Slack Bot来回答请求

时间:2015-03-06 06:23:42

标签: python slack-api

我想创建一个Slack机器人来回答一些简单的问题或在服务器上执行某些任务。这是我试过的

token = "i-put-my-bot-token-here"      # found at https://api.slack.com/#auth)
sc = SlackClient(token)

sc.api_call("chat.postMessage", channel="magic", text="Hello World!")

它是作为Slackbot发布的,而不是我创建的机器人帐户?

另外如果我要听消息,根据python库说它

if sc.rtm_connect():
    while True:
        print sc.rtm_read()
        time.sleep(1)
else:
    print "Connection Failed, invalid token?"

或者我应该使用传入的webhook吗?

2 个答案:

答案 0 :(得分:4)

正如您所看到的,here此调用接受一个参数'as_user',它可以是真的。如果将其设置为true,则邮件将作为您创建的bot发布。

答案 1 :(得分:4)

我现在正在创建一个机器人。我发现,如果您指定as_user='true',它会像您一样发布,即authed用户。如果您希望它是您的机器人,请传递我们的机器人的名称和其他选项,如表情符号,如下:

sc.api_call(
    'chat.postMessage',
    username='new_slack_bot',
    icon_emoji=':ghost:',
    as_user='false',
    channel='magic',
    text='Hello World!'
)

查看emoji cheat sheet了解更多信息。

然后,如果您想收听事件,例如问题或命令,请尝试拦截发送的邮件。this post上的示例:

while True:
    new_evts = sc.rtm_read()
    for evt in new_evts:
      print(evt)
      if "type" in evt:
        if evt["type"] == "message" and "text" in evt:    
          message=evt["text"]
          # write operations below to receive commands and respond as you like