在Salesforce iOS SDK中查询用户名

问题描述 投票:1回答:5

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

ios salesforce
5个回答
10
投票

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

#import "SFIdentityData.h"

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

1
投票

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

对于REST,metadaddy发表了一篇很好的文章:http://wiki.developerforce.com/page/Digging_Deeper_into_OAuth_2.0_at_Salesforce.com#The_Force.com_Identity_Service

身份服务链接采用/id/(organization id)/(user id)格式,在此博客文章中向上滚动一下,以了解何时应该如此。

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


1
投票

对于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

1
投票

您需要导入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);

0
投票

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}
© www.soinside.com 2019 - 2024. All rights reserved.