initialize(); // 加载配置 $config = config('project.trtc'); echo "=== 腾讯云IM UserSig测试 ===\n\n"; echo "SDKAppID: " . $config['sdkAppId'] . "\n"; echo "SecretKey长度: " . strlen($config['secretKey']) . "\n"; echo "SecretKey前10位: " . substr($config['secretKey'], 0, 10) . "...\n\n"; // 测试生成UserSig try { $api = new \app\common\service\TLSSigAPIv2($config['sdkAppId'], $config['secretKey']); // 测试用户ID $testUserId = 'test_user_' . time(); $expire = 86400; // 1天 echo "测试用户ID: $testUserId\n"; echo "过期时间: $expire 秒\n\n"; // 生成UserSig $userSig = $api->genUserSig($testUserId, $expire); echo "✅ UserSig生成成功!\n"; echo "UserSig长度: " . strlen($userSig) . "\n"; echo "UserSig前50位: " . substr($userSig, 0, 50) . "...\n\n"; // 验证UserSig $initTime = 0; $expireTime = 0; $userbuf = ''; $errorMsg = ''; $isValid = $api->verifySig($userSig, $testUserId, $initTime, $expireTime, $userbuf, $errorMsg); if ($isValid) { echo "✅ UserSig验证成功!\n"; echo "初始化时间: " . date('Y-m-d H:i:s', $initTime) . "\n"; echo "过期时间: " . $expireTime . " 秒\n"; echo "到期时间: " . date('Y-m-d H:i:s', $initTime + $expireTime) . "\n\n"; } else { echo "❌ UserSig验证失败: $errorMsg\n\n"; } // 测试IM账号导入 echo "=== 测试IM账号导入 ===\n\n"; $imService = new \app\common\service\TencentImService(); $result = $imService->importAccount($testUserId, '测试用户'); if ($result['success']) { echo "✅ IM账号导入成功!\n"; echo "用户ID: " . $result['userId'] . "\n"; echo "消息: " . $result['message'] . "\n\n"; echo "请登录腾讯云控制台验证:\n"; echo "1. 进入:即时通信IM > 应用列表\n"; echo "2. 选择SDKAppID: " . $config['sdkAppId'] . "\n"; echo "3. 进入:账号管理\n"; echo "4. 搜索:$testUserId\n"; echo "5. 应该能看到该账号\n\n"; } else { echo "❌ IM账号导入失败!\n"; echo "错误信息: " . $result['message'] . "\n\n"; echo "可能的原因:\n"; echo "1. SDKAppID不正确(请确认是IM应用的SDKAppID)\n"; echo "2. SecretKey不正确\n"; echo "3. IM服务未开通或已过期\n"; echo "4. 网络连接问题\n\n"; echo "排查步骤:\n"; echo "1. 登录腾讯云控制台\n"; echo "2. 进入:即时通信IM > 应用列表\n"; echo "3. 确认SDKAppID: " . $config['sdkAppId'] . "\n"; echo "4. 进入应用详情 > 密钥管理\n"; echo "5. 确认SecretKey是否正确\n"; echo "6. 使用官方工具测试:https://console.cloud.tencent.com/im/tool-usersig\n\n"; } } catch (\Exception $e) { echo "❌ 发生异常: " . $e->getMessage() . "\n"; echo "堆栈跟踪:\n" . $e->getTraceAsString() . "\n"; } echo "\n=== 测试完成 ===\n";