从URL(未链接)上传图像到Slack



我使用Google App Script每小时向Slack发送图像,但它只链接在同一URL定期更改的图像。

是否有可能从URL抓取图像并通过API上传到Slack,以便我有图像的每小时历史记录?目前,如果我查看昨天的消息,它是与今天相同的图像,因为它只是一个链接。

function SendToSlack() {

var content = {
"channel":"updates",
"text":"Hourly Update",
"attachments": [
{
"blocks": [
{
"type": "image",
"title": {
"type": "plain_text",
"text": "Hourly",
"emoji": true
},
"image_url": "https://imageurl",
"alt_text": "image"
}
]
}
]
};
var res = UrlFetchApp.fetch(
"https://hooks.slack.com/services/###",
{
method: "post",
payload: JSON.stringify(content),
muteHttpExceptions: true,
})
}

你可以从Apps Script中做到这一点,但是你需要一个Slack应用程序,正如Tanaike所建议的。

这是因为您需要使用files.upload端点来上传映像,而这需要files:writebot或用户作用域。如果你拥有Slack服务器,你可以很容易地做到这一点,通过转到api.slack.com并专门为此目的生成应用程序,用你的域授权它,然后简单地将bot令牌复制到你的应用程序中,作为files.upload请求的一部分传递。

如果你不拥有服务器,你要么需要有人为你提供这个可以手动授权应用程序,或者构建一个oauth认证循环来检索bot令牌。

最新更新