我使用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:write
bot或用户作用域。如果你拥有Slack服务器,你可以很容易地做到这一点,通过转到api.slack.com并专门为此目的生成应用程序,用你的域授权它,然后简单地将bot令牌复制到你的应用程序中,作为files.upload
请求的一部分传递。
如果你不拥有服务器,你要么需要有人为你提供这个可以手动授权应用程序,或者构建一个oauth认证循环来检索bot令牌。