0

私はAzure AD B2C with Graph APIにユーザーを追加しますが、ユーザーのメール(プライマリ)を保存する方法はわかりません。どのフィールドhereは、ユーザーのプライマリ電子メールアドレスですか?Azure AD B2C with Graph API - ユーザーのメールを取得/設定する方法は?

私はここで読んでいるので、値の認証連絡先に値を入力する方法はありません。これは正しい?ここで

Authorization: Bearer {accessToken} 

メソッドを持つモデル例(Javaの)だ:

+0

リンクが欠落しています。

public async Task<AdUser> GetUserByObjectId(Guid objectId) { string userJson = await SendGraphGetRequest("/users/" + objectId, null); JObject jUser = JObject.Parse(userJson); return new AdUser(jUser); } internal AdUser(JObject jUser) { AccountEnabled = jUser["accountEnabled"].Value<bool>(); CompanyName = jUser["companyName"].Value<string>(); Department = jUser["department"].Value<string>(); DisplayName = jUser["displayName"].Value<string>(); FirstName = jUser["givenName"].Value<string>(); JobTitle = jUser["jobTitle"].Value<string>(); LastName = jUser["surname"].Value<string>(); MailNickname = jUser["mailNickname"].Value<string>(); Mobile = jUser["mobile"].Value<string>(); ObjectId = new Guid(jUser["objectId"].Value<string>()); List<string> mailList = new List<string>(jUser["otherMails"].Count()); mailList.AddRange(jUser["otherMails"].Select(mail => mail.Value<string>())); OtherMails = mailList.AsReadOnly(); Phone = jUser["telephoneNumber"].Value<string>(); List<(string type, string value)> signInNames = jUser["signInNames"].Select(jToken => (jToken["type"].Value<string>(), jToken["value"].Value<string>())).ToList(); SignInNames = signInNames.AsReadOnly(); UserPrincipalName = jUser["userPrincipalName"].Value<string>(); UserType = jUser["userType"].Value<string>(); } 

、ここではAdUserの電子メールのプロパティがあります。 FYI。 – spottedmahn

+0

私はそこにリンクを見る...別のものを追加させて – alvipeo

+0

あなたは今すぐこのリンクを見ますか? – alvipeo

答えて

0

は、ここで私はそれを行う方法は次のとおりです。ここで読む

public string Email 
{ 
    get 
    { 
     if (SignInNames.Count > 0 && SignInNames[0].type == "emailAddress") 
      return SignInNames[0].value; 
     if (OtherMails.Count > 0) 
      return OtherMails[0]; 
     throw new InvalidOperationException("Don't know where to get user Email"); 
    } 
} 
0

あなたは、ユーザーがエンドポイントにPATCHリクエストを行う必要があり

{baseurl}/{tenantId}/users?api-version={apiVersion} 

あなたは認証ヘッダにアクセストークンを忘れないでくださいユーザーオブジェクトのサインイン電子メールを計算して設定する場合:

import com.fasterxml.jackson.annotation.JsonIgnore; 
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 
import com.fasterxml.jackson.annotation.JsonProperty; 

import java.util.ArrayList; 
import java.util.List; 

@JsonIgnoreProperties(ignoreUnknown = true) 
public class GraphApiUserExample{ 

    @JsonProperty("objectId") 
    private String id; 

    private Boolean accountEnabled; 

    private PasswordProfile PasswordProfile; 

    private List<SignInName> signInNames; 

    private String surname; 

    private String displayName; 

    private String givenName; 

    @JsonProperty("userPrincipalName") 
    private String userPrincipalName; 

    public String getId(){ 

     return id; 
    } 

    public void setId(final String id){ 

     this.id = id; 
    } 

    public Boolean getAccountEnabled(){ 

     return accountEnabled; 
    } 

    public void setAccountEnabled(final Boolean accountEnabled){ 

     this.accountEnabled = accountEnabled; 
    } 

    public PasswordProfile getPasswordProfile(){ 

     return passwordProfile; 
    } 

    public void setPasswordProfile(final PasswordProfile passwordProfile){ 

     this.passwordProfile = passwordProfile; 
    } 

    public List<SignInName> getSignInNames(){ 

     return signInNames; 
    } 

    public void setSignInNames(final List<SignInName> signInNames){ 

     this.signInNames = signInNames; 
    } 

    public String getSurname(){ 

     return surname; 
    } 

    public void setSurname(final String surname){ 

     this.surname = surname; 
    } 

    public String getDisplayName(){ 

     return displayName; 
    } 

    public void setDisplayName(final String displayName){ 

     this.displayName = displayName; 
    } 

    public String getGivenName(){ 

     return givenName; 
    } 

    public void setGivenName(final String givenName){ 

     this.givenName = givenName; 
    } 

    public String getUserPrincipalName(){ 

     return userPrincipalName; 
    } 

    public void setUserPrincipalName(final String userPrincipalName){ 

     this.userPrincipalName = userPrincipalName; 
    } 

    @JsonIgnore 
    public String getSignInEmail(){ 

     String email = ""; 
     if(signInNames != null){ 
      for(SignInName signInName : signInNames){ 
       if(signInName.getType().equals("emailAddress")){ 
        email = signInName.getValue(); 
        break; 
       } 
      } 
     } 
     return email; 
    } 

    @JsonIgnore 
    public void setSignInEmail(String signInEmail){ 

     if(signInNames == null){ 
      signInNames = new ArrayList<>(); 
      signInNames.add(new SignInName("emailAddress", signInEmail)); 
      return; 
     } 

     for(SignInName signInName : signInNames){ 
      if(signInName.getType().equals("emailAddress")){ 
       signInName.setValue(signInEmail); 
       break; 
      } 
     } 
    } 
} 

SignInName:

public class SignInName {//userName or emailAddress 

    private String 
     type, 
     value; 

    public String getType(){ 

     return type; 
    } 

    public void setType(final String type){ 

     this.type = type; 
    } 

    public String getValue(){ 

     return value; 
    } 

    public void setValue(final String value){ 

     this.value = value; 
    } 
} 

PasswordProfile:

@JsonIgnoreProperties(ignoreUnknown = true) 
public class PasswordProfile { 

    private String password; 

    private Boolean forceChangePasswordNextLogin; 

    public String getPassword(){ 

     return password; 
    } 

    public void setPassword(final String password){ 

     this.password = password; 
    } 

    public Boolean getForceChangePasswordNextLogin(){ 

     return forceChangePasswordNextLogin; 
    } 

    public void setForceChangePasswordNextLogin(final Boolean forceChangePasswordNextLogin){ 

     this.forceChangePasswordNextLogin = forceChangePasswordNextLogin; 
    } 
} 
関連する問題