问题标签 [microsoft-graph-sdks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - 如何在 .NET 应用程序中使用 Microsoft Graph 访问共享邮件文件夹
我已经在 ASP.NET MVC 平台中生成了 Microsoft Graph 应用程序,该应用程序是从 Microsoft Graph 站点下载的。我需要访问共享邮件文件夹,但不确定我该如何获取??在下面的代码中,我可以访问我的 mailFolder 但不能访问共享的邮件文件夹!
另外,我想知道在上面的代码中我可以在哪里传递参数来访问下一页或所有页面??
azure-active-directory - 获取用户对象的扩展属性
我尝试查询包含扩展属性的用户:
但是我收到以下错误:
在类型“microsoft.graph.user”上找不到名为“properties”的属性。
是否有可能在一个请求中获取user
具有所有扩展属性的对象?
最好的情况是如下所示,我departmentNumber
从具有直接属性的扩展属性中查询:
c# - 缩略图对象有 url,但没有内容
使用 Microsoft Graph C# SDK v1.13。我能够IDriveItemThumbnailsCollectionPage
为我的DriveItem
. 有了那个页面,我可以得到第一个ThumbnailSet
. 那ThumbnailSet
有一个小、中、大的缩略图对象。
每个缩略图对象似乎都有一个有效的缩略图 URL。但是,没有一个.Content
(Stream) 属性是有效的......它们都是NULL
.
前任:
如何使用 SDK 获取这些 Thumbnail 的内容流之一?
使用 VS 调试器查看返回的变量,“thumbs”填充了大小和 URL,但尝试检索内容始终为 NULL。
c# - DriveItemRequest 期望作为 UpdateAsync 中的参数是什么?
Microsoft Graph REST API 指示在更新现有 DriveItem 的属性时,仅应在方法中传递要更新的属性。这似乎不适用于 C# SDK v1.13。
使用 .Net SDK,IDriveItemRequest.UpdateAsync() 方法调用 DriveItem 参数。我正在用我想要更改的属性填充一个新的 DriveItem 对象:例如,因为 IDriveItemRequest 已为我希望更新的 DriveItem 显式创建。
带有我的部分/增量 DriveItem 的 UpdateAsync() 调用返回原始 DriveItem,不变。(我已验证我对该文件具有读/写权限。)
我希望返回的 DriveItem 对象(上面代码示例中的“updateED”)将是我现有的 DriveItem,使用 Description =“Changed Description”进行更新。此外,DriveItem 的 LastModifiedDate 可能是“现在”。
该调用返回原始 DriveItem - 未更新。
那么 .Net UpdateAsync 方法在寻找什么作为参数呢?REST SDK 页面表明它应该只是被明确更新的内容。
谢谢。
asp.net-mvc - 刷新令牌在 Microsoft Graph API 中不起作用
我一直在我的 .NET 应用程序中使用 Microsoft Graph API 来读取 Office 365 中的日历、邮件和联系人。现在我的应用程序使用访问令牌进行工作,该令牌每隔一小时到期并提示用户重新登录。
我的要求是延长令牌到期时间,这只能使用刷新令牌来完成。我试图在我的应用程序中包含范围“offline_access”,它给了我错误“ MSAL 始终发送范围‘openid profile offline_access’。它们不能被抑制,因为它们是库运行所必需的。不要包括任何这些范围参数中的范围。 "
我在 Microsoft 为 Graph APIs 和 MVC 集成提供的演示中对我的应用程序进行了建模: https ://docs.microsoft.com/en-us/outlook/rest/dotnet-tutorial
我在这里做错了什么或者我错过了什么?
任何帮助将不胜感激。
microsoft-graph-api - 您如何从 graph-onedrive 请求新的 downloadUrl?
在我使用 Graph SDK 的 C# 代码中,我正在使用此处慷慨提供的方法测试“下载大文件”:使用 Microsoft Graph SDK 从 OneDrive 下载大文件
但是,即使我在调用此方法之前从服务中明确请求 DriveItem(然后使用 DriveItem 中 AdditionalData 中的 downloadUrl),我收到的响应表明 JWT 令牌已过期。
我假设这个令牌嵌入在预认证的 downloadUrl 中。此外,我推测这个令牌要么是一次性的,要么它会相对较快地过期......这两个原因都是我在尝试使用该 URL 之前明确请求 DriveItem 的原因。
如何确保该服务向我发回“新鲜”的 downloadUrl?是否有一些无缓存标头或我应该在 DriveItem 请求中明确包含的内容?
如前所述,即使我在本地有 DriveItem 对象,我也会明确地从服务中重新获取它,以确保我拥有最新的属性和新的 downloadUrl。(但这不起作用。)使用没有任何额外标头(或其他 odata 参数)的 Request 对象显然不足以触发新 URL 的生成。
并非每次测试都会发生这种情况。我相信在短时间内使用相同的 DriveItem 重新运行测试时会发生这种情况。同样,我不确定 JWT 令牌是一次性使用的还是过期的,但如果它在任何情况下都过期了,我认为该服务应该自动生成一个新令牌。如果这不切实际,那么仅仅了解如何明确要求一个新的当然也很有效!
php - 图形 API 未正确检索数据
我正在使用( https://github.com/microsoftgraph/msgraph-sdk-php )Microsoft graph API
从 Microsoft 帐户中检索我的消息。php SDK
我的代码示例如下
但它会引发错误,如下所示:
致命错误:未捕获的 GuzzleHttp\Exception\ClientException:客户端错误:
GET https://graph.microsoft.com/v1.0/me/messages
导致400 Bad Request
响应:{“错误”:{“代码”:“BadRequest”,“消息”:“当前经过身份验证的上下文对此请求无效。(截断。 ..) 在第 113 行的 C:\wamp64\www\graph_api\vendor\guzzlehttp\guzzle\src\Exception\RequestException.php
这是因为访问 Graph API 的任何权限问题吗?我在Microsoft app registration portal
以及在 azure 门户中
什么可能导致此问题?有什么办法可以解决问题吗?
microsoft-graph-api - 您如何签出和签入 ListItems?
我无法使用 Graph SDK 在 SharePoint Online 库/列表中找到“签出”(或以其他方式锁定)和“签入”文档的方法。我实际上也没有看到列出的 REST 调用,但我必须相信它们在某个地方,因为 OneDrive for Business 网络客户端公开了这些功能。
基本上,在某些版本控制方案中,SharePoint 管理员和/或设计人员可以在库的版本设置配置中“要求签出”。编辑文档是一个多步骤的过程,第一步是从库中“签出”文档,以便将其锁定以供当前用户进行编辑。在查看 REST 文档或 GitHub 上的 Graph SDK 源代码时,我找不到此方法(以及镜像方法“签入”)。如果将库配置为“需要签出”,则需要这些方法。
我已经非常彻底地查看了 (Graph)List 和 ListItem 对象(包括版本关系/集合)并且找不到方法。我本来希望它们在 ListItem 对象上可用。
如果有人有任何代码可以以这种方式处理文档 ListItems - 或者只是知道在哪里可以找到这些方法,那将非常有帮助。
microsoft-graph-api - 同步新日历事件始终具有 @removed 字段
我正在使用@microsoft/microsoft-graph-client
带有基本 url 的 npm 包同步日历事件/me/calendarview/delta
。直到几天前它一直运行良好。出于某种原因,每当我在 outlook.office.com 中创建新的日历事件并且我的应用程序同步时,新创建的日历事件都会@removed: {reason: "deleted"}
设置该字段。
但是,当我使用 Microsoft Graph Explorer 查找相同的日历事件时,相同的事件没有@removed
设置字段。是否有任何理由让新创建的日历事件看起来像是在同步期间被删除?我正在使用@microsoft/microsoft-graph-client v1.3.0
重建步骤:
- 通过 POST 使用节点图客户端创建事件
/me/calendar/events
/me/calendarview/delta
使用适当的 deltaLink 和访问令牌获取日历事件的增量。@odata.type
我收到 1 个具有 3 个字段、id
和的日历事件@removed
。id 字段与步骤 1 中创建的事件的 id 匹配。
如果您需要更多信息,请告诉我。这影响了我们的一些用户。
更新:我尝试了解决此问题的方法,方法是调用我在增量同步上收到/me/events/<id>
的每个@removed
日历条目,以验证该事件是否真的被删除。但是,当我通过 microsoft-graph-client 调用该 API 时,它返回 null。如果我通过MSFT Graph Explorer进行相同的 GET 调用,则返回该事件。
microsoft-graph-api - 与图表上的 $filter /messages 不一致
我们遇到了一个奇怪的问题(不一致),这似乎与 Graph 上获取消息端点的 $filter 功能有关。
我们回复通过他们的 internetMessageId 字段查询消息。这通常是可行的,但在某些情况下,我们已经看到结果集是空的(没有错误),奇怪的是同一条消息可以通过其主题或发件人的地址获取。
此 API 调用返回一个空结果:
https://graph.microsoft.com/v1.0/users/<user_principal_name>/messages?$filter=internetMessageId eq '<CAPJZXvF23=Ut7ksuJzCV+dQa6Pjy+3+uRU7j0v-GLydAi974Rg@mail.gmail.com>'
此 API 调用有效:
https://graph.microsoft.com/v1.0/users/<user_principal_name>/messages?$filter=sender/emailAddress/address eq '<sender_address>'