SP.UserProfiles.PeopleManager.getUserProfilePropertyForメソッドはaccountName
、パラメーターが要求形式で提供されることを期待しています
ID クレーム形式について
SharePoint 2013 および SharePoint 2010 は、次のエンコード形式で ID クレームを表示します。
<IdentityClaim>:0<ClaimType><ClaimValueType><AuthMode>|<OriginalIssuer (optional)>|<ClaimValue>
説明については、この記事に従ってください。
SharePoint Online (SPO) の場合、アカウントには次の形式が使用されます。
i:0#.f|membership|username@tenant.onmicrosoft.com
クレームは、電子メール アドレスから作成できます。
function toClaim(email)
{
return String.format('i:0#.f|membership|{0}',email);
}
例
var email = 'username@tenant.onmicrosoft.com';
var profilePropertyName = "PreferredName";
var accountName = toClaim(email);
function getUserProfilePropertyFor(accountName,profilePropertyName,success,failure)
{
var context = SP.ClientContext.get_current();
var peopleManager = new SP.UserProfiles.PeopleManager(context);
var userProfileProperty = peopleManager.getUserProfilePropertyFor(accountName,profilePropertyName);
context.executeQueryAsync(
function(){
success(userProfileProperty);
},
failure);
}
使用法
getUserProfilePropertyFor(accountName,profilePropertyName,
function(property){
console.log(property.get_value());
},
function(sender,args){
console.log(args.get_message());
});
参考文献
SharePoint 2013: クレームのエンコード