const zulip = require('zulip-js'); async function listSubscriptions() { console.log('🔧 检查用户订阅的 Streams...'); const config = { username: 'angjustinl@mail.angforever.top', apiKey: 'lCPWC...pqNfGF8', realm: 'https://zulip.xinghangee.icu/' }; try { const client = await zulip(config); // 获取用户信息 console.log('\n👤 获取用户信息...'); const profile = await client.users.me.getProfile(); console.log('用户:', profile.full_name, `(${profile.email})`); console.log('是否管理员:', profile.is_admin); // 获取用户订阅的 Streams console.log('\n📋 获取用户订阅的 Streams...'); const subscriptions = await client.streams.subscriptions.retrieve(); if (subscriptions.result === 'success') { console.log(`\n✅ 找到 ${subscriptions.subscriptions.length} 个订阅的 Streams:`); subscriptions.subscriptions.forEach(sub => { console.log(` - ${sub.name} (ID: ${sub.stream_id})`); }); // 检查是否有 "Novice Village" const noviceVillage = subscriptions.subscriptions.find(s => s.name === 'Novice Village'); if (noviceVillage) { console.log('\n✅ "Novice Village" Stream 已存在!'); // 测试发送消息 console.log('\n📤 测试发送消息...'); const result = await client.messages.send({ type: 'stream', to: 'Novice Village', subject: 'General', content: '测试消息:系统集成测试成功 🎮' }); if (result.result === 'success') { console.log('✅ 消息发送成功! Message ID:', result.id); } else { console.log('❌ 消息发送失败:', result.msg); } } else { console.log('\n⚠️ "Novice Village" Stream 不存在'); console.log('💡 请在 Zulip 网页界面手动创建该 Stream,或使用管理员账号创建'); // 尝试发送到第一个可用的 Stream if (subscriptions.subscriptions.length > 0) { const firstStream = subscriptions.subscriptions[0]; console.log(`\n📤 尝试发送消息到 "${firstStream.name}"...`); const result = await client.messages.send({ type: 'stream', to: firstStream.name, subject: 'Test', content: '测试消息:验证系统可以发送消息 🎮' }); if (result.result === 'success') { console.log('✅ 消息发送成功! Message ID:', result.id); console.log(`💡 系统工作正常,只需创建 "Novice Village" Stream 即可`); } else { console.log('❌ 消息发送失败:', result.msg); } } } } else { console.log('❌ 获取订阅失败:', subscriptions.msg); } } catch (error) { console.error('\n❌ 操作失败:', error.message); if (error.response) { console.error('响应数据:', error.response.data); } } } listSubscriptions();