python - 使用 SlackClient 查找消息的 channel 名称

标签 python python-2.7 slack-api slack

我正在尝试使用 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/

相关文章:

java - 两个列表之间的比较。是否可以获得列出的输出?

拉拉维尔 5.7 : Can I programmatically force Slack to not split longer message into two or more?

python - 如何使用请求发送具有 unicode 名称的文件

python - 有没有办法通过命令行交互执行selenium "queries"?

python - 为 pandas 数据框中的某些序列创建标签

python - 通过类层次结构合并字典类属性

python - Pandas :时间序列数据:如何选择一小时或一天或一分钟的行?

python - SciPy构建/安装Mac Osx

node.js - Slack 机器人安装以包含自定义表情符号?

python - 在带有 M1 芯片(基于 ARM 的 Apple Silicon)的 Mac 上安装早期版本的 Python(3.8 之前)失败