0

我需要将 Salesforce iOS 本机库集成到我的 iOS 本机应用程序中,并且必须显示 Salesforce 登录屏幕和流程,如下所述:

  1. 我的 iOS 本机应用程序中有一个主屏幕。
  2. 从那里我必须导航到 Salesforce 登录屏幕。
  3. 用户将输入凭据,Salesforce 将对其进行验证。
  4. 成功登录后,它将使用令牌/会话 ID 返回到我的主屏幕。
  5. 我将在我的应用程序内部使用该令牌/会话ID。

为了实现这一点,我在我的应用程序中从以下链接https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Distribution集成了“SalesforceMobileSDK-iOS-Distribution” 。但究竟我不知道从哪里开始以及如何开始?哪个班级会给我 Salesforce 的登录屏幕。我尝试了类似的东西

[SFUserAccountManager sharedInstance].oauthClientId = strClientID;
[SFUserAccountManager sharedInstance].oauthCompletionUrl = strCallbackURI; 
[SFUserAccountManager sharedInstance].scopes = [NSSet setWithObjects:@"api",@"web", nil];

[SalesforceSDKManager sharedManager].connectedAppId = strClientID;
[SalesforceSDKManager sharedManager].connectedAppCallbackUri = strCallbackURI;   
[SalesforceSDKManager sharedManager].authScopes = @[@"web", @"api"]; 
[[SalesforceSDKManager sharedManager] launch];

我已连接应用程序信息,例如客户端 ID、密码和重定向 URI。我该如何进行?

如果我使用zkSforce此链接中的库https://github.com/superfell/zkSforce 它是否满足我的要求?请帮我。提前致谢。

4

3 回答 3

1

最后我做到了,这个问题的好答案是

  1. "SalesforceMobileSDK-iOS-Distribution"从以下链接下载https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Distribution
  2. 提取所有“-Release.zip”文件并将它们添加到您的应用程序中。
  3. 将所有库的标题搜索路径设置为"$(SRCROOT)/your app name/your library name"并选择“递归”。
  4. 设置其他链接器标志,例如“-ObjC”和“-all_load”。
  5. 导入"SFUserAccountManager.h", "SFAuthenticationManager.h" and "SFIdentityData.h"文件。
  6. 将以下代码段添加到您的登录操作

    [SFUserAccountManager sharedInstance].oauthClientId = strClientID;
    
    [SFUserAccountManager sharedInstance].oauthCompletionUrl = strCallbackURI;
    
    // [SFUserAccountManager sharedInstance].scopes = [NSSet setWithObjects:@"web", @"api", nil];
    
    [[SFAuthenticationManager sharedManager] addDelegate:self];
    
    [[SFAuthenticationManager sharedManager]
     loginWithCompletion:(SFOAuthFlowSuccessCallbackBlock)^(SFOAuthInfo *info) {
         NSLog(@"Authentication Done");
    
         SFIdentityData *claims = [SFAuthenticationManager sharedManager].idCoordinator.idData;
         NSLog(@"claims = %@",claims);
    
         NSLog(@"accessToken = %@", [SFAuthenticationManager sharedManager].coordinator.credentials.accessToken);
    
     }
     failure:(SFOAuthFlowFailureCallbackBlock)^(SFOAuthInfo *info, NSError *error) {
         NSLog(@"Authentication Failed");
     // handle error hare.
     }
     ];
    
    #pragma mark - SFAuthenticationManager
    
    - (void)authManager:(SFAuthenticationManager *)manager willDisplayAuthWebView:(UIWebView *)view{
    
     }
    
    - (void)authManagerDidFail:(SFAuthenticationManager *)manager error:(NSError*)error info:(SFOAuthInfo *)info{
    }
    

希望对您有所帮助。

注意:根据我的说法,“回调 URI”不应以“http”或“https”开头。

于 2014-12-22T21:00:25.183 回答
0

销售人员使用 oAuth 登录。代码应该发挥作用。你的主要问题是什么?运行上述代码后,您是否无法显示登录页面?

检查 SFDC iOS SDK 工作原理的其他方法是安装 forceios npm 包并从它提供的 cmd 创建本机 iOS 应用程序。[ https://www.npmjs.com/package/forceios]

创建的应用程序让您了解 SFDC SDK 的工作原理 [登录、从 SFDC 获取数据等]

于 2014-12-18T09:43:48.030 回答
0

1) 使用 CocoaPods pod 'SalesforceSDKCore' 导入集成<SFAuthenticationManager.h>

2) 确保正确配置 OAuthRedirect URL

  • yourapp://authdone
  • 在 Salesforce 服务器配置中添加此重定向 URL
  • 在 Info.plist 中配置重定向 URL

3) 使用上面 Ganesh 的代码,使用SFAuthenticationManager设置oauthCompletionUrl为您配置的 OAuthRedirect URL。回调将在成功时拥有整个用户对象。

于 2016-12-29T20:30:01.943 回答