问题标签 [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.

0 投票
1 回答
2721 浏览

c# - 在 Microsoft Graph .Net SDK 中重用 GraphServiceClient 的建议是什么?

我意识到 Microsoft Graph .Net SDK 正在使用HttpClient类。

微软自己的文档建议HttpClient尽可能重用实例,而不是为每个请求旋转一个新实例,这可能会导致连接池和SocketExceptions 最终耗尽。

是否有类似的建议,尽可能重用GraphServiceClientGraphServiceClient每个请求实例化一个新的有什么特别的问题吗?

0 投票
1 回答
418 浏览

microsoft-graph-api - PATCH 带有生日或租用日期的用户请求返回 500 错误

我无法更新目录中用户的生日和租用日期属性。

以下请求返回 500 Internal Server Error

PATCH https://graph.microsoft.com/beta/users/[已删除] HTTP/1.1 SdkVersion:Graph-dotnet-1.10.0 授权:Bearer [已删除] 缓存控制:无存储,无缓存内容类型:应用程序/json;charset=utf-8 主机:graph.microsoft.com

{"hireDate":"1989-10-02T04:00:00Z"}

HTTP 响应

HTTP/1.1 500 内部服务器错误内容类型:应用程序/json ...

Microsoft.Office.Server.Directory.DirectoryObjectUnauthorizedAccessException。试图执行未经授权的操作。

Azure AD 应用程序权限

0 投票
0 回答
672 浏览

msal - Microsoft Graph API,400 错误请求

Microsoft Graph API 为每个请求返回错误 400。此外,当我尝试从https://developer.microsoft.com/en-us/graph/graph-explorer发出请求时,它与此标头的问题相同:

ApiExProxy-错误:1 内容类型:文本/html 服务器:Microsoft-IIS/10.0

有什么想法吗?

0 投票
3 回答
1162 浏览

c# - 持久登录 Microsoft-Graph c# SDK

我正在使用 Microsoft Graph C#.NET SDK 来访问用户的邮件收件箱。问题是,当我进行身份验证时,Microsoft 发回给我的令牌仅在 1 小时左右有效,而且过早过期。但是用户每 1 小时登录一次只是为了查看 Outlook 邮件收件箱,这太烦人了。我需要使这个登录持久化。

这是我使用的代码:

有什么办法可以延长过期时间吗?或者制作一个刷新令牌或其他东西来保持登录?

0 投票
2 回答
1517 浏览

c# - Microsoft.Graph SDK 以用户身份发送邮件 - 400 - 不支持意外异常或打开导航属性

我正在开发一个应用程序,该应用程序需要在用户完成操作时向他们发送电子邮件通知和提醒。用户提交数据,然后应用程序通知其他用户按特定顺序执行操作(即用户 1:任务 1,任务 1 完成后,用户 2:任务 2,等等) - 如果用户花费的时间过长执行他们的操作,系统会提醒他们,然后服从他们的经理(通过 Windows 服务或类似服务)。因此,我无法代表当前登录的用户发送消息 - 它需要能够自行发送消息。最好代表提交数据的用户发送,以便后续用户可以直接回复他们。

我正在使用Microsoft Graph 客户端库v1.10.0。运行我的代码会产生一个聚合异常,最终归结为代码 400, code "generalException", message"Unexpected exception returned from the service." 我使用 LinqPad 来查看 Graph 对象,并尝试在 Postman 中重现调用,这会产生 400 和消息"Open navigation properties are not supported on OpenTypes. Property name: 'microsoft.graph.sendmail'."

更详尽的细节:

  • 应用程序具有 Microsoft Graph -> Send mail as any user, Read all groups,Read all users' full profiles权限。
  • 调用会GraphServiceClient.Client.Users["MyUPN"].SendMail(email, true).Request().PostAsync()产生 400 一般异常Unexpected exception returned from the service.(下面的完整代码)
  • 查看请求,我发现它正在调用https://graph.windows.net:443/{{tenantId}}/users/{{MyUPN}}/microsoft.graph.sendMail?api-version=1.6并尝试通过 Postman(使用有效令牌)进行相同的调用,这产生了 400 错误请求和消息Open navigation properties are not supported on OpenTypes. Property name: 'microsoft.graph.sendMail'.

完整代码:

作为测试,我也尝试await _Sdk.Client.Users[MyUpn].Messages.Request().Top(20).GetAsync();了同样的错误。其他 Graph 调用,例如获取用户的组或经理,工作正常 - 此错误仅出现在与电子邮件相关的调用中。


2018 年 9 月 19 日上午更新

如果我使用证书而不是密钥->密码来生成令牌,看起来我可以让电子邮件正常工作;并改为调用 Outlook API。不幸的是,这不适用于 GraphServiceClient 和 Graph API - 它可以使用证书,并使用 Outlook API 基本 URL,但该microsoft.graph.sendMail操作仅sendMail在 Outlook API 中进行。

为了可维护性,我仍然想让它在 Graph API 下工作,所以我仍在寻找原始问题的答案。

0 投票
1 回答
1558 浏览

c# - Microsoft Graph SDK for .NET 是否自动处理速率限制?

Microsoft 将某些 Graph 端点的速率限制为每 10 分钟 10,000 个请求(来源)。如果达到限制,Retry-After标头指示在发送另一个请求之前要等待多长时间。

这是否由 Graph SDK 自动处理?如果不是,调用者应该采取什么步骤?

0 投票
1 回答
1120 浏览

office365 - 如何使用 Graph SDK 获取用户的邮箱设置

我在尝试使用此处找到的 Graph 客户端库获取此数据时遇到问题:https ://www.nuget.org/packages/Microsoft.Graph在我的 c# 应用程序中。我知道可以使用此REST API 调用获得数据。

我已经创建了我的天蓝色应用程序并提供了应用程序“读取所有用户邮箱设置”权限并单击“授予权限”以应用它们。问题不在于我的身份验证。我能够检索数据。

作为最后的手段,我将使用 REST API,但如果可以,我只想使用该库。

0 投票
1 回答
479 浏览

microsoft-graph-api - MS Graph SDK .NET 使用 documentLibrary 模板查询所有列表

在 Microsoft Graph SDK for .NET 的帮助下,我想枚举我的根站点(例如 http://mydomain.sharepoint.com)中的所有文档库,并为每个文档库枚举它们的列定义。

由于我需要这些列,因此我不能使用查询“/sites/{site-id}/drives”,因为它将返回没有任何列的 Drive 对象。因此,我发现执行此操作的唯一方法是根据 API 参考使用模板属性设置为“documentLibrary”的过滤器查询所有列表:https ://developer.microsoft.com/en-us/graph/docs/ api-reference/v1.0/resources/list

在图形资源管理器中,适当的查询似乎是:“https://graph.microsoft.com/v1.0/sites/root/lists?$filter=list/template eq 'documentLibrary'”但它发回一个错误(没有 ' 围绕 documentLibrary 相同)。但是我没有找到任何方法来做到这一点,无论是使用 .NET SDK 还是图​​形资源管理器。

欢迎任何帮助,提前谢谢你

使用模板过滤器请求列表的 C# 方法

0 投票
2 回答
178 浏览

javascript - 如何使邮件正文超过 255 个字符?

我正在通过以下代码检索电子邮件,但我只收到 255 个字符而不是整个正文。

有什么办法可以取消这个限制吗?

0 投票
0 回答
88 浏览

c# - Office 365 API 中的电子邮件回复通知

我正在使用图形 sdk 和 Web 挂钩(或文档调用它的通知)将自定义 CRM 应用程序连接到 Office 365 电子邮件中以收听收件箱,以便当用户从 Outlook(或任何客户端)发送或接收消息时CRM 系统将电子邮件保存在数据库中并抓取附件。

到目前为止,当用户使用created通知接收电子邮件时,我已经成功地将所有内容连接起来,但我无法弄清楚如何解释和捕获用户点击回复并发送或创建新消息时的数据和发送 - 当我订阅edit通知时(我只是假设delete通知在这里没有帮助)它只是在用户回复时向我发送原始消息的副本,并且在他们创建和发送时不向我发送任何内容新邮件。

任何有关此的文档参考或教程都会有所帮助。谢谢!