开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1330|回复: 8
收起左侧

[求助] QQ频道api接口multipart/form-data如何上传图片

[复制链接]
结帖率:0% (0/1)
发表于 2023-6-27 19:54:48 | 显示全部楼层 |阅读模式   黑龙江省齐齐哈尔市
QQ截图20230626235707.jpg
[HTML] 纯文本查看 复制代码
------WebKitFormBoundaryYTwvlk5brGmyD3Mn
Content-Disposition: form-data; name="content"

2
------WebKitFormBoundaryYTwvlk5brGmyD3Mn
Content-Disposition: form-data; name="msg_id"

[msg_id]
------WebKitFormBoundaryYTwvlk5brGmyD3Mn
Content-Disposition: form-data; name="file_image"; filename="文件名"
Content-Type: image/png

路径
------WebKitFormBoundaryYTwvlk5brGmyD3Mn--

QQ截图20230626235652.jpg
  
路径 = “D:\迁移桌面\e源码\ba机qi人插件\kumiao\SDK\调试模块\qq频道\1.png”
文件名 = 取文本右边 (路径, 取文本长度 (路径)倒找文本 (路径, “\”, , ))
数据 = 到字节集 ( #QQ频道文本混合消息 )
数据 = 子字节集替换 (数据, 到字节集 (“文件名”), 到字节集 (文件名), , )
数据 = 子字节集替换 (数据, 到字节集 (“路径”), 读入文件 (路径), , )
数据 = 子字节集替换 (数据, 到字节集 (“[msg_id]”), 到字节集 (被动消息ID), , )
api.置输出日志 (到文本 (数据), )
ADD_协议头.添加 (“Authorization”, “Bot ” + QQ频道BotAppID + “.” + QQ频道BotToken)
ADD_协议头.添加 (“Content-Type”, “multipart/form-data; boundary=------WebKitFormBoundaryYTwvlk5brGmyD3Mn”, )
ADD_协议头.添加 (“User-Agent”, “Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0”)
局_提交协议头 = ADD_协议头.获取协议头数据 ()
局_结果 = 网页_访问_对象 (局_网址, 局_方式, , , , 局_提交协议头, , , 真, 数据, , , , , , , , , )
局_返回 = 到文本 (编码_编码转换对象 (局_结果, , , ))

QQ截图20230626235722.jpg

https://bot.q.qq.com/wiki/develop/api/openapi/message/post_messages.html

一直返回400BadRequest
是哪里写的问题还是另有玄机,请各路大神点拨一下。

结帖率:0% (0/1)
 楼主| 发表于 2023-6-27 19:54:49 | 显示全部楼层   黑龙江省绥化市
试了试把图片去掉还是报400错误
回复 支持 反对

使用道具 举报

结帖率:100% (105/105)

签到天数: 17 天

发表于 2023-6-27 21:48:52 | 显示全部楼层   浙江省温州市
360截图20230627214833419.jpg
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
 楼主| 发表于 2023-6-27 22:05:29 | 显示全部楼层   黑龙江省齐齐哈尔市

那个是url链接,下面那个才是是上传图片字节集的专有参数
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
 楼主| 发表于 2023-6-27 22:06:27 | 显示全部楼层   黑龙江省齐齐哈尔市

需要用multipart/form-data直接上传字节集图片而不是用url链接,因为后期还有别的地方需要上传
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
 楼主| 发表于 2023-6-27 22:37:57 | 显示全部楼层   黑龙江省齐齐哈尔市
已经自行解决,感谢论坛朋友的例子,链接如下:
https://bbs.125.la/forum.php?mod=viewthread&tid=14746783
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
 楼主| 发表于 2023-6-27 22:41:30 | 显示全部楼层   黑龙江省齐齐哈尔市
代码如下
  
如果 (是否私信)
局_网址 = https://api.sgroup.qq.com/dms/ + 子频道ID + “/messages”
局_网址 = https://api.sgroup.qq.com/channels/ + 子频道ID + “/messages”

' 局_提交数据 = 文本_替换 (#QQ频道文本混合消息, , , , “[image]”, 图片地址, “[msg_id]”, 被动消息ID, , , , , , )
局_方式 = 1
' api.置输出日志 (局_提交数据, )
路径 = “D:\迁移桌面\e源码\ba机qi人插件\kumiao\SDK\调试模块\qq频道\1.png”
文件名 = 取文本右边 (路径, 取文本长度 (路径)倒找文本 (路径, “\”, , ))
分隔符 = 取重复文本 (4, “-”)“WebKitFormBoundary”文本_取随机字符 (16, 位或 (1, 2, 4))
' 数据 = 到字节集 (#QQ频道文本混合消息)
' 数据 = 子字节集替换 (数据, 到字节集 (“文件名”), 到字节集 (文件名), , )
' 数据 = 子字节集替换 (数据, 到字节集 (“路径”), 读入文件 (路径), , )
' 数据 = 子字节集替换 (数据, 到字节集 (“[msg_id]”), 到字节集 (被动消息ID), , )
图片数据 = 读入文件 (路径)
ADD_协议头.添加 (“Authorization”, “Bot ” + QQ频道BotAppID + “.” + QQ频道BotToken)
ADD_协议头.添加 (“Content-Type”, “multipart/form-data; boundary=” + 分隔符, )
ADD_协议头.添加 (“Content-Length”, 到文本 (取字节集长度 (图片数据)), )
ADD_协议头.添加 (“accept”, “application/json”, )
ADD_协议头.添加 (“User-Agent”, “Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0”, )
' headers0.置值 (“Content-Length”, 到文本 (取字节集长度 (图片数据)))
' headers0.置值 (“accept”, “application/json”)
局_提交协议头 = ADD_协议头.获取协议头数据 ()
posta.置值 (“msg_id”, 到字节集 (被动消息ID))
posta.置值 (“msg_id”, 到字节集 (被动消息ID))
posta.添加 (“file_image”, 图片数据, “image/png”, 文件名)
postb = posta.获取Post数据 (分隔符, 2)
局_结果 = 网页_访问_对象 (局_网址, 局_方式, , , , 局_提交协议头, , , 真, postb, , , , , , , , , )
局_返回 = 到文本 (编码_编码转换对象 (局_结果, , , ))
api.置输出日志 (到文本 (postb), )
api.置输出日志 (局_返回, )
返回 (局_返回)

补充内容 (2023-6-27 22:41):
亲测可以正常使用
回复 支持 1 反对 0

使用道具 举报

签到天数: 9 天

发表于 2023-8-19 14:45:22 | 显示全部楼层   湖南省株洲市
b1067519395 发表于 2023-6-27 22:41
代码如下
[e=1].版本 2

没用呢没用呢
没用呢
没用呢
没用呢
没用呢

回复 支持 反对

使用道具 举报

签到天数: 9 天

发表于 2025-5-17 13:49:40 | 显示全部楼层   广西壮族自治区钦州市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表