我正在尝试使用 Azure AD B2B API 在我的 Office 365 租户中邀请来宾用户,目的是在发送邀请后立即设置来宾用户的 hireDate 属性。对我来说,客人没有必要兑换邀请函。问题是,当我尝试修补用户以更新 hireDate 属性时,无论客人是否兑换邀请,代码都会失败(带有错误消息:无法检查 AD 中的用户是否存在)。如果我在发送邀请后等待一分钟左右,然后尝试修补用户,则不会出现此问题。如何在不等待的情况下设置此属性?
为了解决这个问题,我已经尝试实现重试逻辑,但这并不可靠。
var token = extranetHelper.GetAuthToken(); //Custom class to get token
var guestEmail = "abc@abc.com";
var siteURL = "https://tenant.sharepoint.com/sites/abc";
var displayName = "";
Invitation guestInvitation =
GraphUtility.InviteGuestUser(token.AccessToken, guestEmail, siteURL, "", displayName);
var guestUserId = guestInvitation.InvitedUser.Id;
var graphUrl = "https://graph.microsoft.com/beta/users/" + guestUserId;
var body = "{"hireDate" : "" + DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ") + ""}";
var response = GraphHttpClient.MakePatchRequestForString(graphUrl, JsonConvert.DeserializeObject(body), "application/json", token.AccessToken);
应为 Azure AD 中新创建的来宾用户设置 hireDate 属性。
据我所知,目前没有办法避免这种延迟,因为有时可能需要 30 分钟到一个小时才能改变状态。
由于图形 API 目前无法检查此情况,因此可以使用 Azure AD 报告 API 来检查此状态。我们可以获取更新用户事件并检查用户状态以查看是否邀请它实现目标。有关 Azure AD 报告 API 的更多详细信息,可以单击此链接。
可以在此处留下反馈,以便 Azure 减少此延迟。