无法通过web-api上传文件

时间:2017-07-27 07:12:47

标签: python python-2.7 python-requests slack slack-api

我正在尝试使用https://api.slack.com/methods/files.upload上提供的Web-API将文件片段上传到松散的频道

 payload_channel_caller = {'token': 'xoxpxxxxb1d8529c', 'channel':'C1PJ17FFT', 'file': "/home/nsingh/slack_shift/user_list" ,'title':'Shifters'}

    print "This is a test"
    requests.post('https://slack.com/api/files.upload', data=payload_channel_caller)

但是上面的代码无法上传文件,事实上它没有错误地运行。

不知道这里有什么不对。

有人可以帮助我吗

1 个答案:

答案 0 :(得分:2)

修改要点:

在您的脚本中,不会读取您要上传的文件。运行脚本时,将检索以下响应。

{"ok":false,"error":"no_file_data"}

此时,Slack的状态代码为200.因此不会发生错误。上面提到的脚本如下所示。

修改后的脚本:

import requests
uploadfile = "/home/nsingh/slack_shift/user_list"  # Please input the filename with path that you want to upload.
with open(uploadfile, 'rb') as f:
    param = {
        'token': 'xoxpxxxxb1d8529c',
        'channels': 'C1PJ17FFT',
        'title': 'Shifters'
    }
    r = requests.post(
        "https://slack.com/api/files.upload",
        params=param,
        files={'file': f}
    )
    print r.text

如果我误解了你的问题,我很抱歉。