试了下接口还是有点问题看来只能等大佬出详细的使用手册了
啥问题,看看你的代码,返回什么了
const http = require(‘http’);
const crypto = require(‘crypto’);
const { randomUUID } = require(‘crypto’);
const uid = ‘cute’;
const token = ‘58486b40-dd68-408c-8fcc-385358f81e25’;
function generateSignature(timestamp, random) {
const data = ${timestamp}:${random}:${token}
;
const hmac = crypto.createHmac(‘sha256’, token);
hmac.update(data);
return hmac.digest(‘hex’);
}
function sendHttpRequest() {
const timestamp = new Date().getTime();
const random = randomUUID();
const sign = generateSignature(timestamp, random);
const postData = JSON.stringify({
// channelId: “8385444041238345”,
// guildId: “818687669”,
// content: “hello”
});
// http://127.0.0.1:5140/api
const options = {
hostname: ‘127.0.0.1’, // Replace with the actual request address
port: 5140, // Replace with the actual port number
path: '/api ', // Replace with the actual API path
method: ‘POST’,
headers: {
‘Content-Type’: ‘application/json’,
‘timestamp’: timestamp,
‘random’: random,
‘sign’: sign,
‘uid’: uid,
‘Content-Length’: Buffer.byteLength(postData) // Set the content length
}
};
const req = http.request(options, (res) => {
console.log(Status Code: ${res.statusCode}
);
res.setEncoding(‘utf8’);
res.on(‘data’, (chunk) => {
console.log(Response: ${chunk}
);
});
});
req.on(‘error’, (error) => {
console.error(Error: ${error}
);
});
// Send the JSON data in the request body
req.write(postData);
req.end();
}
sendHttpRequest();
/*
/api - 测试你的签名算法,可以 GET 到一个 Good!
以下路由只在配置开启时存在
/api/bots - 返回所有 koishi 注册的 bots
/api/bots/:sid - 返回指定 sid 的 bot 信息 (selfId, platform, status, username, userid, joinedGuilds)
/api/bots/:sid/message - 发送信息,看上边示例代码来改
58486b40-dd68-408c-8fcc-385358f81e25
*/
/api 这个目录下只能 GET,没有 POST,POST 是在发送消息的时候用的,我之后会给 /api 这个路径上改成 all 的,那样测试起来就方便了
也试了下get没效果
希望大佬出一个api 表格
你直接浏览器访问 /api 看看这个路由出现没,如果正常的话会是个 Missing xxx
然后就是这个推送消息只能是文字? 大佬后面会增加图片推送嘛
这个测试有了
好的感谢,我也再琢磨琢磨
我往 github readme 里写了,今天还顺便加了信息更新和撤回的api,发送消息改成 api/bots/:sid/message/create 了
大佬create那个接口 messageId随便填一个吗 Response: {“messageId”:[“”],“message”:“Send message successfully on channel 818687669”} 接口成功 但是没有发送消息
不是啊,messageId 是发送消息后接口返回的值,是给你们之后调用另一个接口更新消息用的,如果返回的 messageId 为空就是没有发送成功
如果你要发送群组消息必须填 guildId 的,你把 koishi 自带的 inspect 开了然后用了会返回这些信息
还有我大意了,发现 await sendMessage 发送失败并不会throw error,所以那个success并不是真的发送成功了,发送成功了 messageId 应该有内容,之后会通过判断 messageId 是否为空来返回正确的信息的
channelId是啥意思 频道吗
请求体 guildId channelId我都写的群id 要怎么改下吗大佬
你把 koishi 自带的 inspect 插件打开用这个指令就能看到当前环境的信息
在哪里看呢 大佬
插件配置,有个 inspect 插件,打开,在你的群,输入 inspect