这个项目演示了如何使用 Stream Feeds 的 ForYou Group 功能来实现全局推送和个性化内容推荐。
test-stream/
├── index.ts # 主应用文件(包含完整的 foryou 实现)
├── foryou-example.ts # 简化的 ForYou Group 示例
├── tokenProvider.ts # 令牌生成和管理
├── FORYOU_GUIDE.md # 详细使用指南
├── .env # 环境变量配置
├── .env.example # 环境变量示例
└── package.json # 项目依赖和脚本
npm install复制 .env.example 到 .env 并填入你的 Stream 配置:
cp .env.example .env编辑 .env 文件:
STREAM_API_KEY=your-stream-api-key
STREAM_API_SECRET=your-stream-api-secret
STREAM_APP_ID=your-stream-app-id
STREAM_USER_ID=your-user-id
TOKEN_VALIDITY_SECONDS=3600
npm run foryounpm run dev- ✅ 创建用户专属的 foryou feed
- ✅ 添加全局推送内容
- ✅ 实时获取推荐内容
- ✅ 轮询监听新内容更新
- ✅ 动态生成用户令牌
- ✅ 自动令牌刷新机制
- ✅ 令牌过期处理
- ✅ 网络超时处理
- ✅ 认证错误处理
- ✅ 资源清理机制
await forYouManager.addGlobalPush({
text: "🎉 系统维护通知:今晚 22:00-24:00",
type: "system_announcement",
priority: "high"
});await forYouManager.addGlobalPush({
text: "🔥 基于你的兴趣推荐:React 最佳实践",
type: "content_recommendation",
priority: "medium"
});await forYouManager.addGlobalPush({
text: "🛍️ 限时优惠:Stream 服务 8 折优惠",
type: "promotion",
priority: "low"
});import { ForYouManager } from './foryou-example';
const forYouManager = new ForYouManager({
apiKey: process.env.STREAM_API_KEY!,
apiSecret: process.env.STREAM_API_SECRET!,
userId: process.env.STREAM_USER_ID!
});
// 初始化
await forYouManager.initialize();
// 添加推送
await forYouManager.addGlobalPush({
text: "欢迎使用 ForYou 功能!",
type: "welcome"
});
// 获取推荐内容
const recommendations = await forYouManager.getRecommendations(10);
forYouManager.displayRecommendations(recommendations);// 启动实时监听
const interval = forYouManager.startMonitoring(10000); // 每10秒检查一次
// 停止监听
clearInterval(interval);
forYouManager.cleanup();- 📖 ForYou Group 详细使用指南 - 完整的功能说明和最佳实践
- 💡 示例代码 - 可运行的示例代码
- 🔧 主应用 - 完整的实现示例
- API Secret 安全: 确保
.env文件不会提交到版本控制系统 - 网络配置: 如果遇到超时错误,请检查网络连接和防火墙设置
- 令牌有效期: 建议设置合适的令牌有效期(默认 1 小时)
- 监听频率: 根据实际需求调整轮询间隔,避免过于频繁的 API 调用
StreamApiError: timeout of 3000ms exceeded
解决方案: 检查网络连接和 API 配置,确保 API Secret 正确
StreamApiError: 401 Unauthorized
解决方案: 检查 API Key 和 API Secret 是否正确配置
请确保在 .env 文件中配置了所有必需的环境变量
解决方案: 按照 .env.example 配置所有必需的环境变量
- 用户偏好设置
- 推送统计分析
- 内容分类和过滤
- 批量推送操作
- WebSocket 实时推送
- Stream Feeds: 核心推送服务
- TypeScript: 类型安全的开发体验
- Node.js: 服务端运行环境
- JWT: 用户认证和授权
- WebSocket: 实时通信支持
MIT License