Как отправить изображение в Slack в качестве слабого бота через slackclient? - PullRequest
0 голосов
/ 20 сентября 2018

Я создаю простого бота, который периодически генерирует диаграммы в виде изображений и публикует их в Slack через пакет python slackclient .

Мне удалось отправить сообщение бота с кодомниже:

def post_message_to_channel(self, channel_id, message=DEFAULT_TEST_MESSAGE):
    sc = SlackClient(TOKEN)
    sc.api_call(
        "chat.postMessage",
        channel=channel_id,
        username='mybot',
        text='test text message'
    )

Но когда я пытаюсь сделать то же самое с загрузкой файла, изображение отправляется правильно, но оно показывает мое имя, а не указанное имя бота:

def post_image_to_channel(self, channel_name, filepath, tile='Test Upload'):
    sc = SlackClient(TOKEN)
    with open(filepath, 'rb') as file_content:
        sc.api_call(
                "files.upload",
                channels=channel_id,
                file=file_content,
                title=tile,
                username='mybot',               
            )

Глядя на простую документацию по API для files.upload, выясняется, что username недоступен.

Как отправить files.upload изображение с именем бота?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Другой подход заключается в отправке изображений в виде вложения сообщений .Таким образом, вы также можете включить некоторую контекстную информацию вокруг диаграммы.И поскольку вы отправляете сообщение, у вас все еще есть полный контроль над именем пользователя и т. Д.

0 голосов
/ 20 сентября 2018

Вы должны отправить файл, используя токен пользователя-бота пользователя-бота.Вы можете найти больше информации в официальной документации https://api.slack.com/bot-users

...