我能得到' thumb_pdf'使用Slack的files.upload方法?

时间:2017-12-26 10:55:17

标签: pdf attachment slack

测试Slack API' files.upload 我发现我无法获得附带缩略图的PDF。

我想跟随(我使用Slack官方客户端获得此信息): PDF file in slack with thumbnail

但这是我使用files.upload API获得的。 PDF no thumbnail

所以我比较了channels.history的结果 thumb_pdf

您可以找到' thumb_pdf',' thumb_pdf_w',' thumb_pdf_h'在左侧(使用官方客户端上传)。有谁知道如何使用松弛的API来完成这项工作?

1 个答案:

答案 0 :(得分:2)

我不知道这对你有用。因此,请将此视为几个答案之一。

在我的环境中,我也确认了与你相同的情况。使用files.upload API上传PDF时,不会附加缩略图。另一方面,当使用官方客户端(我使用我的浏览器上传PDF)上传PDF时,附上缩略图。在图像的情况下,我可以看到两种模式的缩略图。

分析:

我假设使用官方客户端上传PDF时,可以使用特殊参数和端点。文件由multipart/form-data上传。所以我在上传PDF文件时分析了请求。我使用了chrome开发工具。结果,发现特殊端点和访问令牌用于这种情况。

  • https://upload.slack.com/api/files.uploadAsync用作端点。
    • files.upload,使用https://slack.com/api/files.upload
  • xoxp-############-############-############-##########用作访问令牌。 (#用于代替数字。)这与OAuth2检索的旧令牌和访问令牌不同。
    • OAuth2检索的旧令牌和访问令牌为xoxp-############-############-############-################################

这些文件不仅用于PDF文件,还用于其他文件。

实验:

作为一项实验,我使用通过分析请求检索的端点和访问令牌尝试了请求。我用curl来做这件事。 curl命令如下。

curl \
     -F file=@sample.pdf" \
     -F channels=### channel ID ### \
     -F token=xoxp-############-############-############-########## \
     -F filename=sample.pdf \
     -F title="Upload test" \
     "https://upload.slack.com/api/files.uploadAsync"

结果:

使用上面提到的curl命令时,返回{"ok":true,"ticket":"#####","file":"### file ID ###"}。带有缩略图的PDF可以在时间轴上看到。如果OAuth2检索的旧令牌和访问令牌用于此端点,则返回{"ok":false,"error":"not_allowed_token_type"}。由此可以发现xoxp-############-############-############-##########是特殊标记。

注意:

  • 这种方法可能不一般。此外,我不知道这是否适合这种情况。
  • 访问令牌的到期时间不明确。

如果这些信息对您没用,我很抱歉。