【问题标题】:Query for username in Salesforce iOS SDK在 Salesforce iOS SDK 中查询用户名
【发布时间】:2013-01-05 00:29:41
【问题描述】:

我有一个使用最新 Salesforce iOS SDK 的 iOS 应用程序。它使用 Salesforce 站点上的 oAuth2.0 通过 web 视图对用户进行身份验证,因此我不会在我的应用程序中捕获用户名。有没有办法可以使用 API 或会话信息以某种方式查询用户名?我只想能够显示用户名,以便用户知道他们登录了哪个帐户(如果他们有多个) 谢谢, 约瑟夫

【问题讨论】:

标签: ios salesforce


【解决方案1】:

当前用户的用户名存储在 SFIdentityData 对象中

#import "SFIdentityData.h"

NSString *userName = [SFAccountManager sharedInstance].idData.username;

【讨论】:

  • 很好的答案,我被困了好几个小时,试图找到一种获取用户 ID 和相关数据的方法。非常感谢。
  • 在新版本的 API 中是[SFAuthenticationManager sharedManager].idCoordinator.idData.username;
  • @NicHubbard 我使用的是最新版本,当我尝试记录用户名时,它给了我 null。你能看看这个链接stackoverflow.com/questions/27574257/…谢谢。
【解决方案2】:

我不知道你是使用 REST 还是 SOAP API...

对于 RESTmetadaddy 有一篇很棒的文章:http://wiki.developerforce.com/page/Digging_Deeper_into_OAuth_2.0_at_Salesforce.com#The_Force.com_Identity_Service

Identity Service 链接的格式为 /id/(organization id)/(user id),请在此博客文章中向上滚动一下以了解您应该期待它的时间。

SOAP API,提供getUserInfo() 方法(它返回一个类似于Apex UserInfo 类的对象)。只需单击此处的第一个链接即可查看您可以调用的方法的完整列表。

【讨论】:

    【解决方案3】:

    适用于 SWIFT

    要使用 Salesforce Mobile SDK 4 在 UILabel 和 UIImageView 中显示登录用户的全名和聊天资料图片,您需要首先创建 @IBOutlets

    @IBOutlet weak var yourtextLabel: UILabel!
    @IBOutlet weak var profileImage: UIImageView!
    

    那么你所需要的只是你的 viewDidLoad() 中的以下内容

    yourtextLabel.text = SFAuthenticationManager.sharedManager().idCoordinator.idData.displayName
    
    let imageURL = SFAuthenticationManager.sharedManager().idCoordinator.idData.pictureUrl
    let image =  UIImage(data: NSData(contentsOfURL: imageURL!)!)
    profileImage.image = image
    

    【讨论】:

      【解决方案4】:

      你需要导入SFAuthenticationManager.h类

      #import <SalesforceSDKCore/SFAuthenticationManager.h>
      

      然后您可以通过这种方式获取用户详细信息(名字电子邮件等)

      NSLog(@"userData= %@",[SFAuthenticationManager sharedManager].idCoordinator.idData);
      
      NSLog(@"first name = %@",[SFAuthenticationManager sharedManager].idCoordinator.idData.firstName);
      NSLog(@"last name = %@",[SFAuthenticationManager sharedManager].idCoordinator.idData.lastName);
      NSLog(@"email name = %@",[SFAuthenticationManager sharedManager].idCoordinator.idData.email);
      

      【讨论】:

        【解决方案5】:

        SalesforceMobileSDK-iOS 7.0

        Swift 版本

        import SalesforceSDKCore
        
        guard let userId = UserAccountManager.shared.currentUserAccountIdentity?.userId else {return}
        

        取决于您的需要,这也可能会有所帮助:

        guard let userId = UserAccountManager.shared.currentUserAccount?.idData?.userId else {return}
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-21
          • 1970-01-01
          相关资源
          最近更新 更多