bot-node-sdk icon indicating copy to clipboard operation
bot-node-sdk copied to clipboard

无法使用本地图片发送消息

Open feilongproject opened this issue 2 years ago • 5 comments

官方API文档里有说明,可以通过multipart/form-data参数里的file_image字段,直接通过文件上传的方式发送图片,请求适配

feilongproject avatar Jun 16 '22 06:06 feilongproject

附议,帖子的接口nodeSDK也该跟进一下

Giftia avatar Jun 16 '22 06:06 Giftia

+1

1011382654 avatar Jun 30 '22 11:06 1011382654

目前自己写了个example

import FormData from 'form-data';////需要自己安装
import fetchfrom 'node-fetch';//需要自己安装
import fs from 'fs';
import { IMessage } from 'qq-guild-bot';

export async function sendImage(msg: IMessage, picName: string,) {

    picName = picName?.startsWith("/") ? picName : `${config.picPath.out}/${picName}`;
    log.debug(`uploading ${picName}`);

    var picData = fs.createReadStream(picName);

    var formdata = new FormData();
    formdata.append("msg_id", msg.id);
    //formdata.append("content", "123456");
    formdata.append("file_image", picData);

    await fetch(`https://api.sgroup.qq.com/channels/${msg.channel_id}/messages`, {
        method: "POST",
        headers: {
            "Content-Type": formdata.getHeaders()["content-type"],
            "Authorization": `Bot ${config.appID}.${config.token}`
        },
        body: formdata

    }).then(async res => {
        const body = await res.json();
        if (body.code)
            throw new Error(body);

    }).catch(error => {
        log.error(error);
    })

}

feilongproject avatar Jul 01 '22 06:07 feilongproject

https://github.com/satorijs/qq-guild-sdk/blob/master/packages/core/test/index.spec.ts#L48-L53

欢迎试试我的,或者尝试一下 koishi ,koishi 的 adapter 也是基于该 sdk 封装的

NWYLZW avatar Oct 26 '22 05:10 NWYLZW