使用Python脚本将图像上载到Slack channel

使用Python脚本将图像上载到Slack channel,python,slack,slack-api,Python,Slack,Slack Api,我正在尝试一件简单的事情,使用python脚本将本地图片添加到我的slack通道。我还没有找到答案。我已经为我的频道创建了slack应用程序,并拥有验证令牌和应用程序ID 我尝试了以下方法,但没有结果: import requests files = { 'file': ('dog.jpg', open('dog.jpg', 'rb')), 'channels': (None, 'App ID,#channel'), 'token': (None, 'Verif

我正在尝试一件简单的事情,使用python脚本将本地图片添加到我的slack通道。我还没有找到答案。我已经为我的频道创建了slack应用程序,并拥有验证令牌和应用程序ID

我尝试了以下方法,但没有结果:

import requests

    files = {
    'file': ('dog.jpg', open('dog.jpg', 'rb')),
    'channels': (None, 'App ID,#channel'),
    'token': (None, 'Verification Token'),
    }
以及:

在这里,当我将我的Slack apps令牌插入Slack_API_令牌时,它给出了令牌上的错误。 有人知道将本地图像发布到slack的快捷方法吗


谢谢

验证令牌不能用于API调用。您需要一个用户或bot令牌。有关如何获取令牌,请参见以下答案:

您不需要同时使用请求和slack来进行API调用。后者就足够了

以下是使用官方Slack库将文件上载到Slack的示例片段:

import os
import slack
from slack.errors import SlackApiError

# init slack client with access token
slack_token = os.environ['SLACK_TOKEN']
client = slack.WebClient(token=slack_token)

# upload file
try:
    response = client.files_upload(    
        file='Stratios_down.jpg',
        initial_comment='This space ship needs some repairs I think...',
        channels='general'
    )
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']}")


验证令牌不能用于API调用。您需要一个用户或bot令牌。有关如何获取令牌,请参见以下答案:

您不需要同时使用请求和slack来进行API调用。后者就足够了

以下是使用官方Slack库将文件上载到Slack的示例片段:

import os
import slack
from slack.errors import SlackApiError

# init slack client with access token
slack_token = os.environ['SLACK_TOKEN']
client = slack.WebClient(token=slack_token)

# upload file
try:
    response = client.files_upload(    
        file='Stratios_down.jpg',
        initial_comment='This space ship needs some repairs I think...',
        channels='general'
    )
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']}")


谢谢你的快速回复。我正在将SLack Bot用户OAuth访问令牌复制到“SLack_令牌”,但它会引发一个关键错误:“xoxb-1190…嘿
SLACK_TOKEN
是一个环境变量,需要在代码之外设置。这是一个很好的方法,因为它是安全的。或者,您可以直接将
slack\u token
设置为您的令牌字符串。谢谢,可以使用,请记住在slack中也邀请bot到频道。很高兴您能使用它。如果这个答案解决了你的问题,请考虑通过点击复选标记将其标记为解决方案。谢谢谢谢你的快速回复。我正在将SLack Bot用户OAuth访问令牌复制到“SLack_令牌”,但它会引发一个关键错误:“xoxb-1190…嘿
SLACK_TOKEN
是一个环境变量,需要在代码之外设置。这是一个很好的方法,因为它是安全的。或者,您可以直接将
slack\u token
设置为您的令牌字符串。谢谢,可以使用,请记住在slack中也邀请bot到频道。很高兴您能使用它。如果这个答案解决了你的问题,请考虑通过点击复选标记将其标记为解决方案。谢谢