松弛API:使用chat.postMessage

时间:2018-10-18 21:13:49

标签: python-3.x slack-api

我已经编写了代码,将任何给定通道(假定存在)发布到工作空间内的工作空间中,但我一直在

的通道上收到channel_not_found错误

1。)我可以验证它们确实存在

2。)通道不是私有的,因为它们前面有#符号而不是锁。

我已经三遍检查了我的Slack应用程序仪表板,并将其安装在工作区中(也已通过工作区管理员进行了验证)。我已将OAuth访问令牌(以xoxp开头)和Bot用户OAuth访问令牌(以xoxb开头)存储为环境变量。我尝试在应用程序中同时使用这两种方法,但通过以下权限/范围获得了相同的结果:chat:write:bot,chat:write:user和bot。我可以通过webhook发送消息,但是我了解我需要为应用程序可能发布到的每个频道创建一个webhook。这个应用程序必须是多功能的,并且能够根据消息用户希望更新的方式来定向消息用户。我们将不胜感激,为查找为什么找不到渠道提供了任何帮助。在以下代码段中,post_channel()函数是我正在使用的测试函数,可以轻松更改通道名称等。

from slackclient import SlackClient
import os

webhook_url = "a webhook url"


def post_message_channel(text, token, channel, is_name):

    """
    Creates an api call to post to a message to specific channel (private or
    public)and returns the JSON object that is returned by the slack api call.

    :param text: The message to post the slack channel.
    :param token: The slack app token to identify the sender.
    :param title: The title of the message being sent.
    :param channel: The channel to post the message to.
    :param is_name: If true, then the channel param holds a name, else it holds a channel id
    :return: The JSON object that the slack api responds with.
    """
    if is_name:
        formatted_channel = "#" + channel
    else:
        formatted_channel = channel
    slack_client = SlackClient(token)
    output_json = slack_client.api_call(
        "chat.postMessage",
        channels = formatted_channel,
        text = text,
        as_user = 1
    )
    return output_json


def post_channel():
    message = "This is a test for posting to a channel"
    my_token = os.environ["SLACK_BOT_USER_TOKEN"]
    print(post_message_channel(message, my_token, 'file_tracker_test', True))

0 个答案:

没有答案