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