gpt4 book ai didi

java - 如何使用 microsoft graph api 获取自定义扩展属性

转载 作者:行者123 更新时间:2023-12-01 16:46:22 26 4
gpt4 key购买 nike

我正在尝试使用 microsoft-graph 获取用户详细信息

我正在响应中查找自定义扩展元素,例如“extension_3a4189d71ad149c6ab5e65ac45bd6add_MyAttribute1”

当我用字符串检索响应时,我可以看到所有元素。

final ResponseEntity<String> response = restTemplate.exchange("http://graph.windows.net/tenant.com/me?api-version=1.6, HttpMethod.GET, new HttpEntity(headers),String.class);

但是当我使用 com.microsoft.graph.models.extensions.User 检索响应时,我再也看不到扩展名了。

final ResponseEntity<User> response = restTemplate.exchange("http://graph.windows.net/tenant.com/me?api-version=1.6, HttpMethod.GET, new HttpEntity(headers),User.class);

如何以比获取 String 对象并逐一查找元素更优雅的方式检索自定义扩展?

最佳答案

因为扩展属性是特定于您的租户的,这意味着它是非标准的,sdk 中没有开箱即用的“对象类”会包含它,因为它附加了应用程序 ID。扩展名_appid_属性名称。所以你必须自己处理。您可以尝试扩展用户类并添加一个方法来读取或反序列化/映射从图形 api 返回的 json,类似于 Hury 建议的内容,或者类似的效果。对此不太可能有现成的解决方案。如果您确实不想手动映射对象,还有一些 json 库可以帮助您反序列化为某种动态对象。

更新:我进一步研究了这一点。我不认为它在extensions.extension中,但是我确实发现在java sdk中你可以访问它。这是文档:https://github.com/microsoftgraph/msgraph-sdk-java/wiki/Working-with-Open-Types
你会做类似的事情

String ext = 
user
.additionalDataManager()
.get("extension_2lkj3l12jl3j2kj3_yourproperty")
.getAsString();

尝试一下希望这有帮助。

关于java - 如何使用 microsoft graph api 获取自定义扩展属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61767292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com