如何下载由 slackbot 创建的文件?

军团

我创建了一个从工作区中的用户收集信息的机器人。它将此信息存储在本地服务器上的 csv 文件中。我如何下载上述文件?我从 Stack Overflow 得到了这段代码,试图联系作者但没有得到任何回应。

import requests
url = 'https://slack-files.com/T0JU09BGC-F0UD6SJ21-a762ad74d3'
token = 'xoxp-TOKEN'
requests.get(url, headers={'Authorization': 'Bearer %s' % token})

如何获取文件的 URL 和令牌?令牌是什么?它是机器人的 OAuth 令牌吗?

假设我想下载stats.csv由 slackbot 创建的服务器命名的文件,但我没有它的 URL,我该如何下载?

埃里克·卡尔科肯

我不建议自己修补下载文件的 URL,因为 Slack 可能会更改它,然后您的代码会中断。

相反,首先通过files.info使用文件 ID调用 API 方法来获取文件的当前 URL 然后使用属性url_private作为 URL 进行下载。或者,您也可以调用files.list以获取带有 ID 及其 URL 的所有文件的列表。

为确保您可以访问该文件,最好使用来自其创建者的令牌,例如您的 slackbot。

我还包括将下载的数据保存到文件的代码和一些基本的错误处理。请注意,令牌不能设置为环境变量名称SLACK_TOKEN这比将其直接放入代码中要安全得多。

这是一个完整的例子:

import os
import requests

token = os.environ['SLACK_TOKEN']
file_id = "F12345678"

# call file info to get url
url = "https://slack.com/api/files.info"
r = requests.get(url, {"token": token, "file": file_id})
r.raise_for_status
response = r.json()
assert response["ok"]
file_name = response["file"]["name"]
file_url = response["file"]["url_private"]
print("Downloaded " + file_name)

# download file
r = requests.get(file_url, headers={'Authorization': 'Bearer %s' % token})
r.raise_for_status
file_data = r.content   # get binary content

# save file to disk
with open(file_name , 'w+b') as f:
  f.write(bytearray(file_data))
print("Saved " + file_name + " in current folder")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何自动下载由OneDrive同步的文件?

来自分类Dev

通过Curl和传入的Webook创建Slackbot提醒

来自分类Dev

如何下载由AngularJs $ http触发的php readfile()发送的文件

来自分类Dev

如何连接由for循环创建的多个文件

来自分类Dev

使用laravel,如何创建动态文件下载?

来自分类Dev

如何从由HTML文件(Ruby)转换的txt文件创建数组?

来自分类Dev

如何使我的slackbot在线程中回复,而不是使用Google App脚本在整个频道中回复

来自分类Dev

如何使我的slackbot在线程中回复,而不是在Slack中回复整个频道

来自分类Dev

下载由Adobe Presenter创建的演示文稿

来自分类Dev

删除由root创建的文件?

来自分类Dev

由Nginx创建的文件的权限

来自分类Dev

创建并下载Java Zip文件

来自分类Dev

从文件下载创建XSD文档

来自分类Dev

如何存储由Barcode Generator for PHP创建的文件?

来自分类Dev

如何单独播放由MediaRecorder创建的WEBM文件

来自分类Dev

如何删除由“ root”创建或拥有的多个文件

来自分类Dev

如何在 ubuntu 中打开由 netbeans 创建的 jar 文件?

来自分类Dev

如何为文件下载创建PHP-Unit测试?

来自分类Dev

如何使新创建的.csv文件下载到用户?

来自分类Dev

如何从图像网址创建文件而不下载图像

来自分类Dev

如何下载使用打开的XML SDK创建的docx文件?

来自分类Dev

如何在C#中创建OneDrive文件下载器

来自分类Dev

如何创建和下载不带路径目录的zip文件

来自分类Dev

如何重命名文件并为其创建下载链接PHP

来自分类Dev

如何从从 SAP 下载的 htm 文件创建数据帧

来自分类Dev

如何下载由 ECS 容器创建的日志以使其看起来像旧的方式删除 JSON?

来自分类Dev

如何创建sql文件?

来自分类Dev

如何创建JAR文件

来自分类Dev

如何创建“ .desktop”文件?

Related 相关文章

  1. 1

    如何自动下载由OneDrive同步的文件?

  2. 2

    通过Curl和传入的Webook创建Slackbot提醒

  3. 3

    如何下载由AngularJs $ http触发的php readfile()发送的文件

  4. 4

    如何连接由for循环创建的多个文件

  5. 5

    使用laravel,如何创建动态文件下载?

  6. 6

    如何从由HTML文件(Ruby)转换的txt文件创建数组?

  7. 7

    如何使我的slackbot在线程中回复,而不是使用Google App脚本在整个频道中回复

  8. 8

    如何使我的slackbot在线程中回复,而不是在Slack中回复整个频道

  9. 9

    下载由Adobe Presenter创建的演示文稿

  10. 10

    删除由root创建的文件?

  11. 11

    由Nginx创建的文件的权限

  12. 12

    创建并下载Java Zip文件

  13. 13

    从文件下载创建XSD文档

  14. 14

    如何存储由Barcode Generator for PHP创建的文件?

  15. 15

    如何单独播放由MediaRecorder创建的WEBM文件

  16. 16

    如何删除由“ root”创建或拥有的多个文件

  17. 17

    如何在 ubuntu 中打开由 netbeans 创建的 jar 文件?

  18. 18

    如何为文件下载创建PHP-Unit测试?

  19. 19

    如何使新创建的.csv文件下载到用户?

  20. 20

    如何从图像网址创建文件而不下载图像

  21. 21

    如何下载使用打开的XML SDK创建的docx文件?

  22. 22

    如何在C#中创建OneDrive文件下载器

  23. 23

    如何创建和下载不带路径目录的zip文件

  24. 24

    如何重命名文件并为其创建下载链接PHP

  25. 25

    如何从从 SAP 下载的 htm 文件创建数据帧

  26. 26

    如何下载由 ECS 容器创建的日志以使其看起来像旧的方式删除 JSON?

  27. 27

    如何创建sql文件?

  28. 28

    如何创建JAR文件

  29. 29

    如何创建“ .desktop”文件?

热门标签

归档