最新のSalesforceiOSSDKを使用するiOSアプリがあります。SalesforceサイトでoAuth2.0を使用してWebビューを介してユーザーを認証するため、アプリでユーザー名をキャプチャしません。APIまたはセッション情報を使用してユーザー名をクエリする方法はありますか?ユーザー名を表示して、ユーザーがログインしたアカウントを認識できるようにしたいだけです(複数のアカウントがある場合)ありがとう、Joseph
5 に答える
現在のユーザーのユーザー名はSFIdentityDataオブジェクトに保存されます
#import "SFIdentityData.h"
NSString *userName = [SFAccountManager sharedInstance].idData.username;
RESTとSOAPAPIのどちらを使用しているかわかりません...
RESTについては、metadaddyによる優れた記事があります: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は、メソッドを提供します(ApexクラスgetUserInfo()
に類似したオブジェクトを返します)。UserInfo
そこにある最初のリンクをクリックするだけで、呼び出すことができるメソッドの完全なリストが表示されます。
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
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);
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}