102 lines
3.3 KiB
PHP
102 lines
3.3 KiB
PHP
<?php
|
|
/**
|
|
* UserSig测试脚本
|
|
* 用于验证SDKAppID和SecretKey是否正确
|
|
*
|
|
* 使用方法:
|
|
* php test_usersig.php
|
|
*/
|
|
|
|
// 加载ThinkPHP框架
|
|
require __DIR__ . '/vendor/autoload.php';
|
|
|
|
// 启动应用
|
|
$app = new think\App();
|
|
$app->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";
|