我可以使用 Slack 的 files.upload 方法获得 'thumb_pdf' 吗?
can I get 'thumb_pdf' using Slack's files.upload method?
在测试 Slack API 的 files.upload 时
我发现我无法获取带有缩略图的 PDF。
我要的是(我用Slack官方客户端搞定的):
但这是我使用 files.upload API 得到的结果。
所以我比较了channels.history的结果
左边可以找到'thumb_pdf'、'thumb_pdf_w'、'thumb_pdf_h'(使用官方客户端上传)。有谁知道如何使用 slack 的 API?
不知道对你有没有用。所以请将此视为几个答案之一。
在我的环境中,我也确认了和你一样的情况。使用 files.upload API 上传 PDF 时,未附加缩略图。另一方面,当使用官方客户端上传 PDF 时(我使用浏览器上传。),会附上缩略图。对于图像,我可以看到两种模式的缩略图。
分析:
我假设在使用官方客户端上传PDF时,可能会用到特殊的参数和端点。文件由 multipart/form-data
上传。所以我分析了上传PDF文件时的请求。我使用了 chrome 开发者工具。结果发现这种情况使用了特殊的endpoint和access token。
https://upload.slack.com/api/files.uploadAsync
用作端点。
- 在
files.upload
处使用了https://slack.com/api/files.upload
。
xoxp-############-############-############-##########
用作访问令牌。 (使用 #
代替数字。)这是与 OAuth2 检索的遗留令牌和访问令牌的区别。
- OAuth2 检索到的遗留令牌和访问令牌是
xoxp-############-############-############-################################
。
这些不仅用于 PDF 文件,还用于其他文件。
实验:
作为实验,我尝试使用端点和通过分析请求检索到的访问令牌来请求。我为此使用了卷曲。 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-############-############-############-##########
是特殊的token。
注:
- 这个方法可能不通用。也不知道这种情况适不适合
- 访问令牌的过期时间不清楚。
如果此信息对您没有用,我很抱歉。
在测试 Slack API 的 files.upload 时 我发现我无法获取带有缩略图的 PDF。
我要的是(我用Slack官方客户端搞定的):
但这是我使用 files.upload API 得到的结果。
所以我比较了channels.history的结果
左边可以找到'thumb_pdf'、'thumb_pdf_w'、'thumb_pdf_h'(使用官方客户端上传)。有谁知道如何使用 slack 的 API?
不知道对你有没有用。所以请将此视为几个答案之一。
在我的环境中,我也确认了和你一样的情况。使用 files.upload API 上传 PDF 时,未附加缩略图。另一方面,当使用官方客户端上传 PDF 时(我使用浏览器上传。),会附上缩略图。对于图像,我可以看到两种模式的缩略图。
分析:
我假设在使用官方客户端上传PDF时,可能会用到特殊的参数和端点。文件由 multipart/form-data
上传。所以我分析了上传PDF文件时的请求。我使用了 chrome 开发者工具。结果发现这种情况使用了特殊的endpoint和access token。
https://upload.slack.com/api/files.uploadAsync
用作端点。- 在
files.upload
处使用了https://slack.com/api/files.upload
。
- 在
xoxp-############-############-############-##########
用作访问令牌。 (使用#
代替数字。)这是与 OAuth2 检索的遗留令牌和访问令牌的区别。- OAuth2 检索到的遗留令牌和访问令牌是
xoxp-############-############-############-################################
。
- OAuth2 检索到的遗留令牌和访问令牌是
这些不仅用于 PDF 文件,还用于其他文件。
实验:
作为实验,我尝试使用端点和通过分析请求检索到的访问令牌来请求。我为此使用了卷曲。 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-############-############-############-##########
是特殊的token。
注:
- 这个方法可能不通用。也不知道这种情况适不适合
- 访问令牌的过期时间不清楚。
如果此信息对您没有用,我很抱歉。