当前位置: 首页 > 知识库问答 >
问题:

为什么不同的Microsoft Graph API返回不同的数据

夏弘义
2023-03-14

我正在使用Microsoft Graph Users API根据我们的ActiveDirectory验证用户名或电子邮件地址列表。名称搜索:

https://graph.microsoft.com/v1.0/me/people/?$search=John.Smith

返回其他数据,如OfficeLocationJobTitle。但如果我使用电子邮件搜索:

    null

我是否需要额外的权限来获取相同的数据?

更新:我按照下面的建议在https://developer.microsoft.com/en-us/Graph/graph-explorer中尝试了这一操作,它起作用了,但是Graph Explorer默认带有这些权限,这些权限不能被禁用:

  • 日历.读写
  • 联系人.读写
  • directory.read.all
  • 文件.ReadWrite.All
  • Mail.ReadWrite
  • Notes.ReadWrite.All
  • OpenID
  • people.read
  • Sites.ReadWrite.All
  • 任务.读写
  • user.readbasic.all
  • user.readwrite
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")/people",
    "value": [{
            "id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
            "displayName": "John Smith",
            "givenName": "John",
            "surname": "Smith",
            "birthday": "",
            "personNotes": "",
            "isFavorite": False,
            "jobTitle": "Software Engineer",
            "companyName": "Company",
            "yomiCompany": "",
            "department": "Fish",
            "officeLocation": "London",
            "profession": "",
            "userPrincipalName": "John.Smith@company.com",
            "imAddress": "sip:John.Smith@company.com",
            "scoredEmailAddresses": [{
                    "address": "John.Smith@company.com",
                    "relevanceScore": -6.0991198031917175,
                    "selectionLikelihood": "notSpecified"
                }
            ],
            "phones": [],
            "postalAddresses": [],
            "websites": [],
            "personType": {
                "class": "Person",
                "subclass": "OrganizationUser"
            }
        }
    ]
}
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "businessPhones": [],
    "displayName": "John Smith",
    "givenName": "John",
    "jobTitle": None,
    "mail": "John.Smith@company.com",
    "mobilePhone": None,
    "officeLocation": None,
    "preferredLanguage": None,
    "surname": "Smith",
    "userPrincipalName": "John.Smith@company.com",
    "id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}

共有1个答案

颛孙庆
2023-03-14

基于我的测试,我发现这两个API获得的信息来自不同的地方。

/me/people返回的“OfficeLocation”似乎在SharePoint中得到维护。您可以登录https://apc.delve.office.com/?u=3df5295a-e4b1-46fe-8969-e715ccd11077&v=editprofile进行检查。

/ME/users/{id userPrincipalName}返回的“OfficeLocation”在Azure AD中维护。所以您可以在Azure ad->users中查看它。

 类似资料:
  • 问题内容: 我运行了跟随脚本(java),它给了我奇怪的结果。有人可以帮忙解释吗? 记录结果(彼此不同): - - 背景 - - 我想将自己的keyGenrator用于@Cacheable批注(Spring和ehCache)。 在这种情况下,我发现缓存总是丢失的。 然后,我必须更改为: 谢谢 问题答案: 这是因为for 不会被覆盖。即使条目相同,也没有理由为什么的两个实例应该具有相同的值。 试试这

  • 问题内容: 今天,我了解并决定将其使用和测试。我知道整数是不可变的,因此id应该是(?)相同。但是,当我在提示中进行测试时,我注意到了一些细微的差异,并想找出其背后的原因。 凉!到目前为止,所有签出。但是之后… 好的,所以测试一下,我注意到此行为一直持续到256年。id最多可以是8位数字,然后257将返回更大的id,可以是15位数字。因此类型必须是8个字节。 所以我发现它与8个字节长有关,但是任何

  • } 我得到了下面的结果。但是在这个结果中,高亮显示的行具有相同的列名,但是别名不同。为什么hibernate会得到相同的Cloumn? 冬眠:删除表,如果存在hibernate_sequence hibernate:删除表(如果存在)UserDetails Hibernate:如果存在,则删除表车辆Hibernate:创建表hibernate_sequence(next_val bigint)En

  • 允许您执行以下操作: 但不是这个: 可能是因为返回类型不是函数签名的一部分。但是是一个类类型,它被赋予一个返回类型,并且知道构造它的函数对象的返回类型。所以这里可能有编译器错误。 为什么没有编译器错误?

  • 问题内容: 我正在阅读Head First Java的书中的一句话: 关键是哈希码可以相同,而不必保证对象相等,因为该方法中使用的“哈希算法” 可能会为多个对象返回相同的值。 为什么该方法可能为不同的对象返回相同的值?这不会引起问题吗? 问题答案: *对对象进行 *散列 意味着“ 找到可以由相同实例一次又一次地再现的良好的描述性值(数字) ”。由于Java的哈希码类型为,因此只能具有不同的值。这就

  • 我总是发现自己在使用时会重塑我的数据,这很烦人,让我的代码变得丑陋。为什么不能使库能够处理各种数据形状并进行适当的解释?例如,要使用线性回归量,我需要做 但是如果我想使用支持向量回归器,那么我不会重塑自变量: 我想图书馆以这种方式设计是有原因的。任何人都可以照亮我吗?