【问题标题】:Using slack API: "Module slack has no attribute WebClient "使用 slack API:“模块 slack 没有属性 WebClient”
【发布时间】:2019-08-01 13:20:01
【问题描述】:

我尝试使用 slack API 向工作区发送消息,我在他们的文档中找到了这段代码,但我对模块 slack 有疑问。这是我使用的代码:

import os
import slack

client = slack.WebClient(token=os.environ['SLACK_API_TOKEN'])

response = client.chat_postMessage(
    channel='#viktor',
    text="Hello world!")
assert response["ok"]
assert response["message"]["text"] == "Hello world!"

我已经放置了我的应用令牌,但它无法识别 WebClient... 有什么想法吗?

【问题讨论】:

  • 代码看起来正确。你确定你安装了正确的包和版本吗?应该是这样的:github.com/slackapi/python-slackclient
  • 升级到最新版本:pip install slackclient --upgrade
  • 你也可以运行pip show slackclient 看看你得到了什么。应该是V2.1.0

标签: python slack-api


【解决方案1】:
pip install slack
pip install slackclient

【讨论】:

    【解决方案2】:

    确保您没有任何名为 slack slack_client 的用户文件。
    一个简单的文件名更改为更原始的东西解决了我的问题。

    这是我的设置:

    • MacOs HS
    • Python 3.7
    • 已安装最新 (2.4) 版本的 slackclient

    【讨论】:

    • 如果知道你是谁,就会给你买啤酒!谢谢老兄!
    • @Ignacio 哈哈干杯!
    【解决方案3】:

    我使用 python-slack-sdk,效果很好。见https://github.com/slackapi/python-slack-sdk#uploading-files-to-slack

    要安装,运行 pip3 install slack_sdk

    上传文件

    import os
    from slack_sdk import WebClient
    from slack_sdk.errors import SlackApiError
    
    client = WebClient(token=os.environ['SLACK_BOT_TOKEN'])
    
    try:
        filepath="./tmp.txt"
        response = client.files_upload(channels='#random', file=filepath)
        assert response["file"]  # the uploaded file
    except SlackApiError as e:
        # You will get a SlackApiError if "ok" is False
        assert e.response["ok"] is False
        assert e.response["error"]  # str like 'invalid_auth', 'channel_not_found'
        print(f"Got an error: {e.response['error']}")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2021-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      • 1970-01-01
      相关资源
      最近更新 更多