UNPKG

@mikoto_zero/minigame-open-mcp

Version:

TapTap Open API MCP Server - Documentation and Management APIs for TapTap Minigame and H5 Games (Leaderboard, and more features coming)

336 lines (281 loc) 9.05 kB
/** * MCP Prompts Handlers * Handle prompt template generation */ /** * Leaderboard integration guide prompt */ export async function getLeaderboardIntegrationPrompt(args) { return { description: '排行榜接入完整工作流引导', messages: [ { role: 'user', content: { type: 'text', text: `我想在我的 TapTap 小游戏中接入排行榜功能。请帮我: 1. 检查我是否已经有排行榜配置 2. 如果没有,引导我创建新的排行榜 3. 如果有,列出现有排行榜供我选择 4. 提供完整的客户端集成代码示例 请使用 list_leaderboards 工具开始检查。` } }, { role: 'assistant', content: { type: 'text', text: `好的!我会帮你完成排行榜接入。让我先检查你现有的排行榜配置... **步骤 1: 检查现有排行榜** 我会调用 list_leaderboards 工具来查看你已有的排行榜。 **接下来的步骤:** - 如果你还没有排行榜,我会引导你使用 create_leaderboard 创建 - 如果已有排行榜,我会列出它们并提供对应的集成代码 让我现在开始检查...` } } ] }; } /** * Leaderboard troubleshooting guide prompt */ export async function getLeaderboardTroubleshootingPrompt(args) { const errorCode = args.error_code; if (errorCode) { // Specific error code troubleshooting return { description: `排行榜错误 ${errorCode} 的排查指南`, messages: [ { role: 'user', content: { type: 'text', text: `我遇到了排行榜错误代码 ${errorCode},请帮我排查和解决。` } }, { role: 'assistant', content: { type: 'text', text: getErrorCodeSolution(errorCode) } } ] }; } // General troubleshooting guide return { description: '排行榜常见问题排查指南', messages: [ { role: 'user', content: { type: 'text', text: '我在使用 TapTap 排行榜时遇到了问题,请提供常见问题的排查步骤。' } }, { role: 'assistant', content: { type: 'text', text: `# TapTap 排行榜常见问题排查指南 ## 🔍 常见错误代码 ### 错误码 500001: 排行榜 ID 未找到 **原因:** leaderboard_id 不存在或输入错误 **解决方案:** 1. 使用 list_leaderboards 工具检查你的排行榜 ID 2. 确认排行榜已经创建并发布 3. 检查 leaderboard_id 拼写是否正确 ### 错误码 1025: 未声明好友关系权限 **原因:** 尝试访问好友排行榜但未申请权限 **解决方案:** 1. 在 TapTap 开发者中心申请好友关系权限 2. 等待审核通过 3. 或者使用 collection: "public" 显示全局排行榜 ### 错误码 104/103: 用户隐私/授权问题 **原因:** 用户未授权或隐私设置限制 **解决方案:** 1. 确保用户已登录 TapTap 2. 引导用户授权必要的权限 3. 处理用户拒绝授权的情况 ## 🛠️ 排查步骤 ### 1. 检查环境配置 使用 check_environment 工具验证: - MAC Token 是否正确配置 - Client ID 和 Secret 是否有效 - 网络连接是否正常 ### 2. 验证排行榜配置 使用 list_leaderboards 工具检查: - 排行榜是否已创建 - 排行榜状态是否正常 - leaderboard_id 是否正确 ### 3. 检查客户端代码 确认以下几点: - LeaderboardManager 实例正确获取 - leaderboard_id 传递正确 - 回调函数正确处理错误 ### 4. 查看详细文档 使用 Resources 获取详细 API 文档: - docs://leaderboard/api/open - 打开排行榜 API - docs://leaderboard/api/submit-scores - 提交分数 API - docs://leaderboard/overview - 完整概览 ## 💡 最佳实践 1. **始终实现错误处理回调** \`\`\`javascript callback: { onFailure: function(code, message) { console.error(\`Error \${code}: \${message}\`); // 向用户显示友好的错误提示 } } \`\`\` 2. **先检查后使用** 在使用排行榜前,先调用 list_leaderboards 确认配置 3. **处理网络异常** 实现重试机制和离线提示 需要针对特定错误的帮助吗?请告诉我错误代码,我会提供详细的解决方案。` } } ] }; } /** * Get specific error code solution */ function getErrorCodeSolution(errorCode) { const solutions = { '500001': `# 错误码 500001: 排行榜 ID 未找到 ## 问题原因 你使用的 leaderboard_id 在系统中不存在。 ## 解决步骤 ### 1. 检查现有排行榜 我会帮你调用 list_leaderboards 工具来查看你的所有排行榜。 ### 2. 常见原因 - 排行榜尚未创建 - leaderboard_id 拼写错误 - 排行榜已被删除 - 使用了其他应用的 leaderboard_id ### 3. 解决方案 如果你还没有排行榜,可以使用 create_leaderboard 工具创建: \`\`\`javascript // 创建排行榜示例 { "name": "每周高分榜", "score_type": "better_than", "reset_cycle": "weekly", "sort_order": "desc" } \`\`\` 创建成功后,你会获得一个 leaderboard_id,在客户端代码中使用它。 需要我帮你检查或创建排行榜吗?`, '1025': `# 错误码 1025: 未声明好友关系权限 ## 问题原因 你的代码尝试访问好友排行榜(collection: "friends"),但应用未申请好友关系权限。 ## 解决步骤 ### 1. 申请权限 前往 TapTap 开发者中心: 1. 选择你的应用 2. 进入"权限管理" 3. 申请"好友关系权限" 4. 等待审核通过 ### 2. 临时解决方案 在权限审核期间,使用全局排行榜: \`\`\`javascript leaderboardManager.openLeaderboard({ leaderboardId: "your_leaderboard_id", collection: "public", // 使用全局排行榜 callback: { onSuccess: function(res) { console.log("打开成功"); } } }); \`\`\` ### 3. 权限通过后 权限审核通过后,就可以使用好友排行榜: \`\`\`javascript collection: "friends" // 显示好友排行榜 \`\`\` 需要查看完整的 openLeaderboard API 文档吗?可以访问 Resource: docs://leaderboard/api/open`, '104': `# 错误码 104: 用户未授权 ## 问题原因 当前用户未登录或未授权访问排行榜功能。 ## 解决步骤 ### 1. 检查用户登录状态 确保用户已登录 TapTap: \`\`\`javascript // 检查登录状态 tap.checkLoginStatus({ onSuccess: function(res) { if (res.isLogin) { // 用户已登录,可以使用排行榜 openLeaderboard(); } else { // 引导用户登录 tap.login({ onSuccess: function() { openLeaderboard(); } }); } } }); \`\`\` ### 2. 处理授权流程 \`\`\`javascript leaderboardManager.openLeaderboard({ leaderboardId: "your_leaderboard_id", callback: { onFailure: function(code, message) { if (code === 104) { // 引导用户登录 showLoginDialog(); } } } }); \`\`\` ### 3. 用户体验优化 - 在使用排行榜前主动检查登录状态 - 提供清晰的登录引导 - 处理用户拒绝登录的情况 需要更多关于用户认证的帮助吗?`, '103': `# 错误码 103: 用户隐私设置限制 ## 问题原因 用户的隐私设置限制了排行榜数据的访问。 ## 解决步骤 ### 1. 尊重用户隐私 这是用户的主动选择,应用应该优雅处理: \`\`\`javascript leaderboardManager.openLeaderboard({ leaderboardId: "your_leaderboard_id", callback: { onFailure: function(code, message) { if (code === 103) { // 向用户说明隐私设置的影响 showMessage("由于隐私设置,无法显示你的排行榜数据"); } } } }); \`\`\` ### 2. 提供替代方案 - 仍然显示全局排行榜(不包含该用户) - 提供其他游戏功能 - 说明如何修改隐私设置(但不要强制) ### 3. 最佳实践 - 不要重复提示用户修改隐私设置 - 确保应用的其他功能正常可用 - 在 UI 上给予友好提示 用户隐私是重要的,应用应该优雅地处理这种情况。` }; return solutions[errorCode] || `# 错误码 ${errorCode} 这是一个不常见的错误代码。建议: 1. 使用 check_environment 工具检查环境配置 2. 查看完整的 API 文档(使用 Resources) 3. 检查网络连接和 API 响应 4. 联系 TapTap 技术支持获取帮助 需要我帮你检查环境配置吗?`; } //# sourceMappingURL=promptHandlers.js.map