跨10+个聊天平台读取消息图片,通过平台专属API和统一图像处理技术进行分析。
聊天图像阅读器是一项面向实际任务的技能,主要用于多个聊天平台的通用图像读取和分析技能;. 支持的平台;
Download Method.;Feishu (飞书).;Feishu.;Message image key.;API + T。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
面向多个聊天平台的通用图像读取与分析能力。
| 平台 | Channel | 图像来源 | 下载方式 |
|---|---|---|---|
| Feishu (飞书) | feishu | 消息中的 image_key |
API + Tenant Token |
| DingTalk (钉钉) | dingtalk | 消息中的 downloadCode |
API + Access Token |
| WeChat (微信) | 媒体文件 file_id |
API + Access Token | |
| Discord | discord | 附件 URL | 直接下载 |
| Telegram | telegram | file_id |
Bot API |
| 媒体 URL | 直接下载 | ||
| Signal | signal | 附件 | 直接下载 |
| Slack | slack | 文件 URL | 直接下载 |
| iMessage | imessage | 附件路径 | 本地文件 |
| LINE | line | 消息内容 | API |
该能力需依赖 API 凭据访问各聊天平台的消息。至少需配置一个平台方可启用本能力。
| 平台 | 必需的环境变量 | 说明 |
|---|---|---|
| Feishu (飞书) | FEISHU_APP_ID、FEISHU_APP_SECRET |
必需权限范围:im:message:readonly、im:resource |
| DingTalk (钉钉) | DINGTALK_APP_KEY、DINGTALK_APP_SECRET |
必需权限:IMessage、Chat |
| WeChat (企业微信) | WECHAT_CORP_ID、WECHAT_CORP_SECRET |
必需权限:media_get |
| Telegram | TELEGRAM_BOT_TOKEN |
通过 @BotFather 获取 |
| Discord | DISCORD_BOT_TOKEN |
从 Discord Developer Portal 获取 |
WHATSAPP_TOKEN |
来自 Meta Business API |
# Feishu (飞书) —— 用于读取 Feishu 图像所必需 export FEISHU_APP_ID="cli_xxx" export FEISHU_APP_SECRET="xxx" # DingTalk (钉钉) —— 用于读取 DingTalk 图像所必需 export DINGTALK_APP_KEY="dingxxx" export DINGTALK_APP_SECRET="xxx" # WeChat (企业微信) —— 用于读取 WeChat 图像所必需 export WECHAT_CORP_ID="xxx" export WECHAT_CORP_SECRET="xxx" # Telegram —— 用于读取 Telegram 图像所必需 export TELEGRAM_BOT_TOKEN="123456:ABC-xxx"
检查 inbound_meta.channel 或 inbound_meta.provider 字段以确定聊天平台:
{
"channel": "feishu", // Feishu
"channel": "discord", // Discord
"channel": "telegram", // Telegram
"channel": "whatsapp", // WhatsApp
...
}
message_id 和 image_keyGET /open-apis/im/v1/messages/{message_id}/resources/{image_key}downloadCodeGET /v1.0/robot/messageFiles/download?downloadCode={code}media_idGET https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token={token}&media_id={id}file_idGET https://api.telegram.org/bot{token}/getFile?file_id={file_id}file_path 构造下载地址:https://api.telegram.org/file/bot{token}/{file_path}若用户直接提供本地路径:
使用 image 工具,并传入合适的 prompt:
image( image: "", prompt: "描述图片内容,包括文字、图表、数据等关键信息" )
# 1. 获取租户令牌
$body = @{ app_id = $appId; app_secret = $appSecret } | ConvertTo-Json
$token = (Invoke-RestMethod -Uri "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" -Method Post -Body $body).tenant_access_token
# 2. 获取消息以定位 image_key
$message = Invoke-RestMethod -Uri "https://open.feishu.cn/open-apis/im/v1/messages/$messageId" -Headers @{ Authorization = "Bearer $token" }
$imageKey = $message.data.items[0].body.content | ConvertFrom-Json | Select-Object -ExpandProperty image_key
# 3. 下载图像
Invoke-WebRequest -Uri "https://open.feishu.cn/open-apis/im/v1/messages/$messageId/resources/$imageKey" -Headers @{ Authorization = "Bearer $token" } -OutFile $outputPath
# 1. 获取访问令牌
$body = @{ appKey = $appKey; appSecret = $appSecret } | ConvertTo-Json
$token = (Invoke-RestMethod -Uri "https://api.dingtalk.com/v1.0/oauth2/accessToken" -Method Post -Body $body).accessToken
# 2. 使用 downloadCode 下载图像
# 针对机器人消息:
Invoke-WebRequest -Uri "https://api.dingtalk.com/v1.0/robot/messageFiles/download?downloadCode=$downloadCode" -Headers @{ "x-acs-dingtalk-access-token" = $token } -OutFile $outputPath
# 针对用户消息(通过 stream):
# 使用会话消息下载 API
# 1. 获取访问令牌 $token = (Invoke-RestMethod -Uri "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpId&corpsecret=$corpSecret").access_token # 2. 下载媒体文件 Invoke-WebRequest -Uri "https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=$token&media_id=$mediaId" -OutFile $outputPath
# Discord 附件为直链 URL $attachmentUrl = $message.attachments[0].url Invoke-WebRequest -Uri $attachmentUrl -OutFile $outputPath
# 1. 根据 file_id 获取文件路径 $fileInfo = Invoke-RestMethod -Uri "https://api.telegram.org/bot$token/getFile?file_id=$fileId" $filePath = $fileInfo.result.file_path # 2. 下载文件 Invoke-WebRequest -Uri "https://api.telegram.org/file/bot$token/$filePath" -OutFile $outputPath
当用户回复一张图像消息时:
reply_to_id识别图片中的所有文字内容,保持原有格式和层次结构。
分析图片中的图表或表格,提取所有数据和标签。
描述界面布局、功能按钮、当前状态等关键信息。
识别股票代码、价格、K线形态、成交量等财务信息。
提取招聘信息,包括职位名称、职责、要求、薪资等关键内容。
描述图片内容,包括主要元素、文字、数据等关键信息。
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 未找到图像 | 消息中不含图像 | 提示用户重发或提供路径 |
| 下载失败 | 权限不足 / 网络异常 | 检查权限配置,重试 |
| API 错误 | Token 过期或无效 | 刷新 Token 后重试 |
| 分析失败 | 图像模糊 / 格式不支持 | 尝试更换 prompt |
当自动图像获取失败时:
$workspace/temp_images/ 或系统临时目录img_{channel}_{timestamp}.jpgFEISHU_APP_ID / channels.feishu.appIdFEISHU_APP_SECRET / channels.feishu.appSecretim:message:readonly、im:resourceDINGTALK_APP_KEY / channels.dingtalk.appKeyDINGTALK_APP_SECRET / channels.dingtalk.appSecretIMessage、ChatWECHAT_CORP_ID / channels.wechat.corpIdWECHAT_CORP_SECRET / channels.wechat.corpSecretmedia_get相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.3万人学习
共49课时 | 82.7万人学习
最新文章