求个api推送消息插件

试了下接口还是有点问题看来只能等大佬出详细的使用手册了 :sob:

3 个赞

啥问题,看看你的代码,返回什么了

2 个赞

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

*/

2 个赞

/api 这个目录下只能 GET,没有 POST,POST 是在发送消息的时候用的,我之后会给 /api 这个路径上改成 all 的,那样测试起来就方便了

2 个赞

也试了下get没效果 :sob:

2 个赞

希望大佬出一个api 表格 :smiley_cat:

3 个赞

你直接浏览器访问 /api 看看这个路由出现没,如果正常的话会是个 Missing xxx

3 个赞

然后就是这个推送消息只能是文字? 大佬后面会增加图片推送嘛

2 个赞

这个测试有了

2 个赞

content 接收任意形式,如果要发图片就按照 koishi 的信息元素来搞 标准元素 | Koishi

2 个赞

论坛解决个人问题刷帖子太多了,上聊天平台吧
qq群:957500313
Kook: KOOK

2 个赞

好的感谢,我也再琢磨琢磨

3 个赞

我往 github readme 里写了,今天还顺便加了信息更新和撤回的api,发送消息改成 api/bots/:sid/message/create 了

3 个赞

大佬create那个接口 messageId随便填一个吗 Response: {“messageId”:[“”],“message”:“Send message successfully on channel 818687669”} 接口成功 但是没有发送消息

2 个赞

不是啊,messageId 是发送消息后接口返回的值,是给你们之后调用另一个接口更新消息用的,如果返回的 messageId 为空就是没有发送成功

如果你要发送群组消息必须填 guildId 的,你把 koishi 自带的 inspect 开了然后用了会返回这些信息

还有我大意了,发现 await sendMessage 发送失败并不会throw error,所以那个success并不是真的发送成功了,发送成功了 messageId 应该有内容,之后会通过判断 messageId 是否为空来返回正确的信息的

2 个赞

channelId是啥意思 频道吗

2 个赞

请求体 guildId channelId我都写的群id 要怎么改下吗大佬

3 个赞

你把 koishi 自带的 inspect 插件打开用这个指令就能看到当前环境的信息

2 个赞

在哪里看呢 大佬

2 个赞

插件配置,有个 inspect 插件,打开,在你的群,输入 inspect

2 个赞