【发布时间】:2017-04-25 06:07:58
【问题描述】:
我正在尝试从松弛的提要中获取一些信息。我的计划是使用它通过扫描频道中的某些单词来向设备写入消息。
我无法从我的频道获取任何要打印的信息,以查看我拥有哪些信息或如何使用这些信息。
我已经尝试阅读文档和示例,但似乎无法找到任何答案来解释为什么这个非常简单的代码似乎总是因为一个关键错误而对我来说失败。
无论如何,这是代码。也许你可以帮忙。谢谢。
from slackclient import SlackClient
import os
slack_token = "xoxp-173120660817xxxxxxxxxxf"
sc = SlackClient(slack_token)
fishtankchannel = "#fishtank"
sc.api_call("chat.postMessage", channel=fishtankchannel, text="worked")
testinfo = sc.api_call("channels.info", channel=fishtankchannel)
print testinfo["channel"]["name"]
在第 9 行因 keyerror 而失败。 post message 命令有效,我的 slack 密钥有效。
【问题讨论】:
-
print(testinfo)看看它包含什么?当字典键不存在但被请求时抛出 KeyErrors。 -
如果我将打印更改为 print(testinfo) 它会打印,但说它没有信息。我不确定它如何无法从刚刚发送消息的频道收集信息。
-
想通了。尽管我的 postmessage 使用的是作为 slack 中显示名称的频道,但要向它询问信息 (channels.info),我需要获取频道的编码名称。我想有一个更好的方法来做到这一点,但我所做的是更改并打印命令 channels.list 然后找到我正在寻找的频道 ID,并将其代替我在 channels.info 调用上的频道名称。