如何从LINE Messaging API下载完整的imageSet图片集合?
如何通过LINE Messaging API下载批量发送的多张图片?
当用户一次性发送多张图片时,LINE会在Webhook消息中通过imageSet字段标记这是一组关联图片。此时不能直接使用单张图片的下载接口,需要调用图片集专属的下载API来获取所有图片。
核心解决方案
使用图片集内容获取接口,指定图片集ID和目标图片的序号:
GET https://api-data.line.me/v2/bot/message/image/{imageSetId}/content/{index}
具体步骤
解析Webhook payload中的关键信息
从你收到的payload里,提取message.imageSet下的三个字段:id: 图片集唯一标识(示例中为9D3B07BFAD1F6DFECD188AE07E13A28C8BC9CCB5E8E1F343346016EAC75DBC42)total: 图片集中的总图片数(示例中为2)index: 当前消息对应的图片在组内的序号(示例中为2)
循环请求所有图片
根据total的值,从1到total依次构造请求URL,获取每一张图片。以你的示例为例:- 下载第一张图片:
GET https://api-data.line.me/v2/bot/message/image/9D3B07BFAD1F6DFECD188AE07E13A28C8BC9CCB5E8E1F343346016EAC75DBC42/content/1 - 下载第二张图片:
GET https://api-data.line.me/v2/bot/message/image/9D3B07BFAD1F6DFECD188AE07E13A28C8BC9CCB5E8E1F343346016EAC75DBC42/content/2
- 下载第一张图片:
注意事项
- 请求头需要携带有效的频道访问令牌:
Authorization: Bearer {你的CHANNEL_ACCESS_TOKEN} - 仅当
message.contentProvider.type为line时,才能使用该接口(第三方存储的图片需走对应的外部链接) - 图片集内容的下载有效期为消息创建后的7天,过期后无法获取
为什么单张图片接口只能拿到第一张?
当图片属于图片集时,message.id对应的是整个图片集的入口资源,调用单张图片下载接口时,默认返回图片集中的第一张图片,因此必须通过图片集接口指定序号才能获取其余图片。
内容的提问来源于stack exchange,提问作者PianoRockCover
相关产品推荐
相关产品推荐

