在使用PC 小程序插件接入过程中,loginbuffer 已经正确获取,但是在调用IILinkAuthManager::ThirdAppLogin时候,callback返回报错:kWrongThirdSdkMode,是什么原因?
// 初始化配置:
bool WMPFWrapper::InitializeBrowsingCore(const std::string& runtimePath, const std::string& dataDir) {
// Get BrowsingService instance
browsingService_ = getBrowsingService_();
if (!browsingService_) {
SetError("Failed to get BrowsingService instance");
return false;
}
// Create configuration JSON
std::ostringstream configJson;
configJson << "{"
<< "\"product-id\": 3000,"
<< "\"log-level\": 0,"
<< "\"wmpf_root_dir\": \"" << dataDir << "\","
<< "\"enable-applet-v3\": true,"
<< "\"max-retry-count\": 5"
<< "}";
std::string config = configJson.str();
std::cout << "[WMPFWrapper] Config: " << config << std::endl;
// Create core service handler
static CoreServiceHandler coreHandler;
// Initialize browsing core
int result = browsingService_->InitilizeBrowsingCore(
config.c_str(),
runtimePath.c_str(),
&coreHandler
);
if (result != 0) {
std::ostringstream oss;
oss << "Failed to initialize browsing core (Error: " << result << ")";
SetError(oss.str());
return false;
}
std::cout << "[WMPFWrapper] Browsing core initialized" << std::endl;
return true;
}
void AuthManager::LoginCallbackWrapper(
int32_t login_type,
int32_t error,
const char* resp_pb,
int resp_len,
void* callback_data) {
std::cout << "[AuthManager] Login callback received:" << std::endl;
std::cout << " - login_type: " << login_type << std::endl;
std::cout << " - error: " << error << " (0x" << std::hex << error << std::dec << ")" << std::endl;
std::cout << " - resp_len: " << resp_len << std::endl;
AuthManager* self = static_cast<AuthManager*>(callback_data);
if (!self) {
std::cerr << "[AuthManager] Error: callback_data is null" << std::endl;
return;
}
bool success = (error == 0);
std::string errorMsg;
if (!success) {
// Decode common error codes
std::string errorDesc;
switch (error) {
case 1073741827: // 0x40000003 - kWrongThirdSdkMode
break;
case 1073741825: // 0x40000001 - kCanNotAutoLogin
errorDesc = "kCanNotAutoLogin - Cannot auto login, need manual login first";
break;
case 1073741826: // 0x40000002 - kParametersError
errorDesc = "kParametersError - Invalid parameters";
break;
case 1073741828: // 0x40000004 - kAsyncLoginInFlight
errorDesc = "kAsyncLoginInFlight - Another login is in progress";
break;
case 1073741829: // 0x40000005 - kAlreadyLoggedIn
errorDesc = "kAlreadyLoggedIn - Already logged in";
break;
case -1:
errorDesc = "General error";
break;
case -2:
errorDesc = "Network error";
break;
case -3:
errorDesc = "Invalid parameters";
break;
default:
errorDesc = "Unknown error";
break;
}
errorMsg = "Login failed with error code: " + std::to_string(error) + " (" + errorDesc + ")";
if (error != 1073741827) { // Don't print again for kWrongThirdSdkMode
std::cerr << "[AuthManager] " << errorMsg << std::endl;
}
} else {
std::cout << "[AuthManager] Login successful!" << std::endl;
// Update cached status
self->cachedLoginStatus_ = LoginStatus::LoginSuccess;
}
// Call user callback
if (self->loginResultCallback_) {
self->loginResultCallback_(success, errorMsg);
self->loginResultCallback_ = nullptr;
}
}
void AuthManager::LoginWithBuffer(const std::string& loginBuffer, LoginResultCallback callback) {
if (!authManager_) {
std::cerr << "[AuthManager] Error: authManager not initialized" << std::endl;
if (callback) {
callback(false, "AuthManager not initialized");
}
return;
}
if (loginBuffer.empty()) {
std::cerr << "[AuthManager] Error: loginBuffer is empty" << std::endl;
if (callback) {
callback(false, "Login buffer is empty");
}
return;
}
// Store callback
loginResultCallback_ = callback;
// Call ThirdAppLogin
authManager_->ThirdAppLogin(loginBuffer.c_str(), LoginCallbackWrapper, this);
}

授权流程已经完成了,还是报错
snsapi_runtime_pcsdk这个权限已经申请了,否则拿不到login buffer。