2014-02-20 88 views
0

我已在我的iOS應用程序中使用zkSForce登錄到SalesForce。現在我需要在同一應用程序的沙箱環境中訪問相同的數據。使用zkSForce訪問salesforce沙箱

但是,當我嘗試登錄時出現以下錯誤。

錯誤域= APIERROR代碼= 0 「的操作無法完成。(APIERROR誤差爲0)」 的UserInfo = 0xad3ef20

{faultstring=INVALID_LOGIN: Invalid username, password, security token; or user locked out., faultcode=INVALID_LOGIN} 

但是,當我試圖連接到生產環境中我我能夠成功登錄。是否有任何特定的指令要使用zkSForce連接到沙盒?提前致謝。

- 編輯 -

我使用下面的方法進行登錄。

[SFAccountManager setLoginHost:@"test.salesforce.com"]; 
[SFAccountManager setClientId:CLIENTID]; 
[SFAccountManager setRedirectUri:REDIRECTURI]; 
[SFAccountManager setCurrentAccountIdentifier:USERNAME]; 
[SFAccountManager sharedInstance].coordinator.credentials.instanceUrl=[NSURL URLWithString:@"https://test.salesfoce.com"]; 

[[FDCServerSwitchboard switchboard] loginWithUsername:username password:passwordToken target:self selector:@selector(loginResult:error:)]; 

,並將結果通過以下方法

- (void)loginResult:(ZKLoginResult *)result error:(NSError *)error{ 
    if (result && !error){ 
     [[SFAccountManager sharedInstance].coordinator.credentials setAccessToken:nil]; 
     [SFAccountManager sharedInstance].coordinator.credentials.accessToken = result.sessionId; 
    } 
    else if (error){ 
     UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Login failed"  message:@"Error" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; 
     [myAlertView show]; 
    } 
} 

回答

1

的沙盒登錄請求處理需要獲得與默認的生產端點不同的端點,因此您需要在調用登錄之前在客戶端對象上調用setLoginProtocolAndHost:例如

ZKSforceClient *c = [[ZKSforceClient alloc] init]; 
[c setLoginProtocolAndHost:@"https://test.salesforce.com"]; 
[c login:self.username password:self.password]; 
... 
+0

我已將登錄主機設置爲適當的登錄主機,即test.salesforce.com本身。但仍然不起作用 –

1

我不確定這是否是完美的解決方案,但添加下面的行爲我工作。

[[FDCServerSwitchboard switchboard] setApiUrlFromOAuthInstanceUrl:LOGINHOSTURL]; 

其中LOGINHOSTURL是您的主機URL。

感謝@superfell給我提示

+0

我不知道你在用什麼工具,但在ZKSforce中沒有SFAccountManager類。請參閱http://github.com/superfell/zkSforce – superfell