[英]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.