跳到主要内容

网络请求

网络请求

如果需要用到网络请求,可以使用 axios 模块,如下所示:

const axios = require('axios');
const cc = require('config_srv');
const rp = require('reply_srv');

/**
* 插件主函数
* @param {AppContext} ctx - 上下文信息
* @param {Message[]} messages - 消息数组
* @returns {Reply} 插件执行结果
*/
async function main(ctx, messages) {
const cfg = await cc.get(ctx);

// 过滤消息,获取最后一条文本消息
const lastMessage = messages.filter(m => m.type === 'TEXT').pop();

// 如果没有找到文本消息,返回一个默认回复
if (!lastMessage) {
return {
content: '未找到文本消息',
type: 'TEXT',
};
}

try {
// 使用 axios 进行 HTTP GET 请求
const response = await axios.get('https://api.example.com/data', {
params: {
query: lastMessage.content,
},
});

// 处理响应并返回回复
return {
content: `API响应: ${response.data}`,
type: 'TEXT',
};
} catch (error) {
console.error('请求出错:', error);

// 返回错误回复
return {
content: '请求出错,请稍后再试',
type: 'TEXT',
};
}
}