Files

34 lines
1.2 KiB
JavaScript

const fs = require('fs');
// Mock event handler for Feishu Menu Events
// In a real scenario, this would be invoked by the Gateway webhook handler.
async function handle(eventPayload) {
console.log("Received Feishu Event:", JSON.stringify(eventPayload));
if (eventPayload.header.event_type === 'application.bot.menu_v6') {
const userOpenId = eventPayload.sender.sender_id.open_id;
const menuKey = eventPayload.event.event_key;
console.log(`User ${userOpenId} clicked menu: ${menuKey}`);
// Response logic
// We can call send.js here
const { execSync } = require('child_process');
try {
const replyText = `收到!你点击了菜单按钮:\`${menuKey}\` 喵!😺`;
execSync(`node ${__dirname}/send.js --target "${userOpenId}" --text "${replyText}" --color "green"`);
} catch (e) {
console.error("Failed to send reply:", e);
}
}
}
// CLI adapter
if (require.main === module) {
// Read from stdin or args
const payload = process.argv[2] ? JSON.parse(process.argv[2]) : {};
handle(payload);
}
module.exports = { handle };