0

我正在使用 ZKForce 将 Sales Force 集成到我的应用程序中。直到现在我成功了,但现在我面临着关于刷新令牌的问题。

当我从我的应用程序登录到销售人员时,我正在执行以下操作。

- (void)loginResult:(ZKLoginResult *)result error:(NSError *)error
{
    if (result && !error)
    {
        NSLog(@"session id is %@",result.sessionId);
        [SFAccountManager sharedInstance].coordinator.credentials.accessToken = result.sessionId;
        NSLog(@"Login Successful");
    }
    else if (error)
    {
        UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Connection failed" message:@"Failed connecting to server. Please try again" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
        [myAlertView show];

    }
}

这里我只是设置访问令牌而不是设置刷新令牌。

我下载了示例案例备忘录应用程序,成功登录后它具有以下内容。

- (void)loginOAuth:(FDCOAuthViewController *)oAuthViewController error:(NSError *)error
{
    if ([oAuthViewController accessToken] && !error)
    {
        NSLog(@"Logged in to Salesforce");
        [[FDCServerSwitchboard switchboard] setClientId:kSFOAuthConsumerKey];
        [[FDCServerSwitchboard switchboard] setApiUrlFromOAuthInstanceUrl:[oAuthViewController instanceUrl]];
        [[FDCServerSwitchboard switchboard] setSessionId:[oAuthViewController accessToken]];
        [[FDCServerSwitchboard switchboard] setOAuthRefreshToken:[oAuthViewController refreshToken]];
        NSLog(@"oauth token is %@",[oAuthViewController accessToken]);
        NSLog(@"oauth token is %@",[oAuthViewController refreshToken]);
        [self.splitViewController dismissModalViewControllerAnimated:YES];
        [self.oAuthViewController autorelease];

        // STEP 3 b - Save OAuth data after login
        [self saveOAuthData: oAuthViewController];

        [self didLogin];
    }
    else if (error)
    {
        [CaseMemoAppDelegate errorWithError:error];
    }
}

他们在这里设置刷新令牌。

那么如何从我的代码中获取该刷新令牌。请帮我。谢谢

4

1 回答 1

0

刷新令牌仅与 OAuth 流相关,与标准登录无关。如果您的第一件作品使用标准登录(直接提交用户名/密码),您将不会获得刷新令牌。如果您确实使用 OAuth,那么您的代码基本上可以显示您在首次登录服务器时获得的刷新令牌,并获取新的访问令牌(当前令牌过期时需要)。

于 2013-07-11T16:57:40.593 回答