我正在尝试使用 python SlackClient 打印在 slack 中发布消息的 channel 。运行此代码后,我只获得 ID 而不是 channel 名称。
import time
import os
from slackclient import SlackClient
BOT_TOKEN = os.environ.get('SLACK_BOT_TOKEN')
def main():
# Creates a slackclient instance with bots token
sc = SlackClient(BOT_TOKEN)
#Connect to slack
if sc.rtm_connect():
print "connected"
while True:
# Read latest messages
for slack_message in sc.rtm_read():
message = slack_message.get("text")
print message
channel = slack_message.get("channel")
print channels
time.sleep(1)
if __name__ == '__main__':
main()
这是输出:
test
U1K78788H
最佳答案
这将始终生成 channel ID,而不是 channel 名称。您必须调用channels.info来获取 channel 名称。
import time
import os
from slackclient import SlackClient
BOT_TOKEN = os.environ.get('SLACK_BOT_TOKEN')
def main():
# Creates a slackclient instance with bots token
sc = SlackClient(BOT_TOKEN)
#Connect to slack
if sc.rtm_connect():
print "connected"
while True:
# Read latest messages
for slack_message in sc.rtm_read():
message = slack_message.get("text")
print message
channel = slack_message.get("channel")
print channel
channel_info=sc.api_call("channels.info",channel=channel)
print channel_info["channel"]["name"]
time.sleep(1)
if __name__ == '__main__':
main()
这还将打印 channel 名称。 另一种方法是您可以预先将所有 channel 的名称及其channel_id存储在字典中。然后以id为key获取 channel 名称。
关于python - 使用 SlackClient 查找消息的 channel 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38956760/