簡體   English   中英

簡單的Python Slackbot不收聽或響應頻道

[英]Simple Python Slackbot does not listen or respond to channel

我開始使用Slack API,所以我只想編寫一個偵聽頻道的漫游器,每當有人說出關鍵字時,它就會回答。 在這種情況下,如果有人說“你好”,它將以“世界”回應。

到目前為止,這是我所做的。 我注冊了一個Slack帳戶。 我在https://slack.com/apps/build上注冊了一個新的bot >>進行自定義集成>>僅適用於我的團隊的東西,並為其命名等。

然后我創建了一個virtualenv,然后編寫了這個腳本:

import time
from slackclient import SlackClient

BOT_TOKEN = "I PUT MY TOKEN HERE THAT I GOT FROM REGISTRATION"
CHANNEL_NAME = "general"

def main():
    # Create the slackclient instance
    sc = SlackClient(BOT_TOKEN)

    # Connect to slack
    if sc.rtm_connect():
        # Send first message
        sc.rtm_send_message(CHANNEL_NAME, "I'm the Hello World Bot")

        while True:
            # Read latest messages
            for slack_message in sc.rtm_read():
                message = slack_message.get("text")
                user = slack_message.get("user")
                if not message or not user:
                    continue
                if "hello" in message:
                    sc.rtm_send_message(CHANNEL_NAME, "world")
    else:
        print("Couldn't connect to slack")

if __name__ == '__main__':
    main()

當我運行它時,我的命令提示符只是閃爍,什么都沒有發生,甚至沒有頻道中的介紹性消息。 所以我有幾個問題:

1)我的腳本出了什么問題?

2)在我的Slack中,我可以在Direct Messages列表中看到該機器人的名稱,但是當我進入#general頻道時,我只有一個用戶,而該機器人不在那兒。 如何在其中添加? 當我單擊邀請時,它希望我通過電子郵件添加人員。

3)如果我想讓它收聽多個頻道,腳本中我將需要更改什么?

正如@smarx所說,您絕對需要邀請您的漫游器進入該頻道。 然后,我使用chat.postMessage方法進行呼叫和響應:

 if re.search("hello", message):
     self.client.api_call("chat.postMessage", as_user="true",
                          channel=CHANNEL_NAME, text="world")

我的腳本中也有一個停頓處,因此請嘗試以下方法:

while True:
    for slack_message in sc.rtm_read():
            message = slack_message.get("text")
            user = slack_message.get("user")
            room = slack_message.get("channel")
               if re.search("hello", message):
                    self.client.api_call("chat.postMessage", as_user="true",
                                         channel=CHANNEL_NAME, text="world")
    time.sleep(0.25)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM