Replies: 8 comments
-
其实有个办法,那就是加入静态文件端口 |
Beta Was this translation helpful? Give feedback.
-
其实在以前 CQHTTP 时代就有这个功能提案 kyubotics/coolq-http-api#194 本来有个 GET 静态文件的接口,在 OneBot v11 里面去掉了,因为感觉那个接口跟实现的具体细节关联太重 |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
其实有个办法,再开一个HTTP端口接受POST和get,并且提供一个可视化文件管理 |
Beta Was this translation helpful? Give feedback.
-
其实我并不建议再开新端口提供静态文件,这样会增加跨域请求的影响,增加对接难度 可视化文件管理应该是基于 onebot 协议的上层服务提供的,留给协议本身定义的话就不能当作协议处理了 post 并不至于,只需要 get 就可以了,而且建议保持和链接端一致的同源(相同端口)并使用特定的路径配合 query 定位一个资源文件,为了隐私安全也要使用访问令牌保护,以防暴力 Edit:post 似乎也有必要,现在没有很好的上传非网络资源数据的接口(跨设备条件下),每次都是使用base64编码嵌在 cq 码会增加数据量,对小图片还好,大图片/音频很不快捷 |
Beta Was this translation helpful? Give feedback.
-
本人做了一个基于onebot协议的web客户端,因为同源策略问题无法获取和处理音频文件,onebot也没有相应的api提供这个功能,现在的qq也增加了很多功能,onebot也是时候跟进协议支持了 |
Beta Was this translation helpful? Give feedback.
-
其实上面那个 cqhttp 的 issue 我后来一直没做的原因是感觉这种文件管理功能应该用现成的协议,比如 webdav,而不是在 onebot 里面再造一个,再造一个也很难造得好,onebot impl 们实现起来也比较麻烦 |
Beta Was this translation helpful? Give feedback.
-
想到一种比较开放的可能性,能不能在图片/音频消息中加入一个raw_url参数表示qq域名下的原始链接,然后原先的url参数则可以由实现自行决定,只要url的链接能够在跨设备的情况下能访问到就可以了 |
Beta Was this translation helpful? Give feedback.
-
对于某些跨设备连接的程序,程序无法直接通过路径获取图片和录音,需要一个响应数据参数以获取它们的完整原始数据,个人建议可以用一个统一的 HTTP get api 来处理此类请求,更加方便。
Beta Was this translation helpful? Give feedback.
All reactions