gpt4 book ai didi

slack-api - 如何在 channel 中分享上传的图片?

转载 作者:行者123 更新时间:2023-12-03 08:18:20 25 4
gpt4 key购买 nike

我使用 https://slack.com/api/files.upload 将图像上传到 slack
未指定 channels请求中的字段。
我可以在网络界面中看到图像。将来某个时间点在某个 channel 中共享上传的图像应该是什么 api 调用?

我试图上传一张图片,来自 slack 的回复是:

 {
"ok": true,
"file": {
"id": "FHJ9QTX1V",
"created": 1554115093,
"timestamp": 1554115093,
"name": "scaled_IMG-20190324-WA0002.jpg",
"title": "scaled IMG-20190324-WA0002",
"mimetype": "image/jpeg",
"filetype": "jpg",
"pretty_type": "JPEG",
"user": "UGRR6FCF7",
"editable": false,
"size": 217356,
"mode": "hosted",
"is_external": false,
"external_type": "",
"is_public": false,
"public_url_shared": false,
"display_as_bot": false,
"username": "",
"url_private": "https://files.slack.com/files-pri/TGQU3SCHF-FHJ9QTX1V/scaled_img-20190324-wa0002.jpg",
"url_private_download": "https://files.slack.com/files-pri/TGQU3SCHF-FHJ9QTX1V/download/scaled_img-20190324-wa0002.jpg",
"thumb_64": "https://files.slack.com/files-tmb/TGQU3SCHF-FHJ9QTX1V-fa34003fce/scaled_img-20190324-wa0002_64.jpg",
"thumb_80": "https://files.slack.com/files-tmb/TGQU3SCHF-FHJ9QTX1V-fa34003fce/scaled_img-20190324-wa0002_80.jpg",
"thumb_360": "https://files.slack.com/files-tmb/TGQU3SCHF-FHJ9QTX1V-fa34003fce/scaled_img-20190324-wa0002_360.jpg",
"thumb_360_w": 360,
"thumb_360_h": 270,
"thumb_480": "https://files.slack.com/files-tmb/TGQU3SCHF-FHJ9QTX1V-fa34003fce/scaled_img-20190324-wa0002_480.jpg",
"thumb_480_w": 480,
"thumb_480_h": 360,
"thumb_160": "https://files.slack.com/files-tmb/TGQU3SCHF-FHJ9QTX1V-fa34003fce/scaled_img-20190324-wa0002_160.jpg",
"thumb_720": "https://files.slack.com/files-tmb/TGQU3SCHF-FHJ9QTX1V-fa34003fce/scaled_img-20190324-wa0002_720.jpg",
"thumb_720_w": 720,
"thumb_720_h": 540,
"thumb_800": "https://files.slack.com/files-tmb/TGQU3SCHF-FHJ9QTX1V-fa34003fce/scaled_img-20190324-wa0002_800.jpg",
"thumb_800_w": 800,
"thumb_800_h": 600,
"thumb_960": "https://files.slack.com/files-tmb/TGQU3SCHF-FHJ9QTX1V-fa34003fce/scaled_img-20190324-wa0002_960.jpg",
"thumb_960_w": 960,
"thumb_960_h": 720,
"thumb_1024": "https://files.slack.com/files-tmb/TGQU3SCHF-FHJ9QTX1V-fa34003fce/scaled_img-20190324-wa0002_1024.jpg",
"thumb_1024_w": 1024,
"thumb_1024_h": 768,
"image_exif_rotation": 1,
"original_w": 1040,
"original_h": 780,
"permalink": "https://autolainen.slack.com/files/UGRR6FCF7/FHJ9QTX1V/scaled_img-20190324-wa0002.jpg",
"permalink_public": "https://slack-files.com/TGQU3SCHF-FHJ9QTX1V-3366c52c9c",
"comments_count": 0,
"is_starred": false,
"shares": {},
"channels": [],
"groups": [],
"ims": [],
"has_rich_preview": false
}
}

然后尝试使用 /api/chat.postMessage 共享图像:
{
"channel": "CH68ZSHFA",
"text": "test",
"blocks": [
{
"type": "section",
"text": {
"type": "plain_text",
"text": "test"
}
},
{
"type": "image",
"image_url": "https://autolainen.slack.com/files/UGRR6FCF7/FHJ9QTX1V/scaled_img-20190324-wa0002.jpg",
"alt_text": "attachment"
}
],
"as_user": false,
"username": "Client name"
}

我使用的网址来自 url_private , url_private_download , permalink , permalink_public文件描述的字段,但得到相同的响应:
{
"ok": false,
"error": "invalid_blocks",
"response_metadata": {
"messages": [
"[ERROR] downloading image failed [json-pointer:/1/image_url]"
]
}
}

最佳答案

不幸的是,没有官方 API 方法可以在您的工作区上共享文件后,它已被更新。因此,如果您在初始 files.upload 中不包含 channel 请求以后没有正式的方式来共享该文件。

但是有一个非官方的 API 方法叫做 files.share ,它具有非常好的功能。它工作得很好,但你需要一个旧 token 才能使用它,所以这可能不是你的解决方案。

在 Slack 上使用图像的另一种方法是将其包含在消息中(正如您在代码示例中所尝试的那样)。从技术上讲,这与在 Slack 上共享文件不同,因为它仅适用于图像并且为用户提供有限的功能。

它会起作用,但前提是您的图像 URL 是公开的,因为 chat.postMessage仅适用于 Slack 上图像和文件的公共(public) URL 默认情况下是私有(private)的(这意味着您需要在任何请求中提供授权才能从 Slack 外部访问该文件)。

要获取文件的公共(public) URL,您可以调用 API 方法 files.sharedPublicURL 上传后。您将获得一个公共(public) URL 作为响应,然后您可以使用该 URL 将该图像包含在您的消息中。

关于slack-api - 如何在 channel 中分享上传的图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55455562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com