问题标签 [microsoft-graph-api]

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 回答
390 浏览

odata - O365 MS Graph 统一 API 令牌生命周期

我有两个关于令牌使用及其到期的问题:

1) 关于用户申请密码

我需要密码才能进行身份验证。在应用程序中创建密码时,可以定义有效期为一年或两年。我的目标是用户安装、设置并且可以“忘记”的应用程序。但是这个到期可能意味着应用程序将在一年后开始失败,对吗?用户将开始收到令牌错误,他将不得不再次重新设置应用程序(生成新的密钥并使用它进行身份验证)。我可以从密钥中找出到期时间,以便在用户到期之前为用户设置通知吗?我想这样做是为了避免应用程序突然停止工作。

2)客户端认证分两步完成:

  • 一:app客户端id+客户端秘钥+来源+用户认证=代码
  • 二:app客户端id+客户端秘钥+code=token+刷新token

我发现如果我执行第一步并且我想稍后执行第二步,那么第一步中的“代码”可能会过期。我认为“代码”不会过期,但我找不到任何关于它的文档。这是正确的,第二步应该在第一步之后立即完成吗?

0 投票
2 回答
1158 浏览

odata - 从 Microsoft Graph 统一 OData 端点获取一些数据

  1. 如何计算 MicrosoftGraph EntitySet 中的项目数,例如“用户”或“组”?我试过了:

同样在目标“microsoft.graph.directoryObject”的注释中,这些实体集基于我看到它是 Selectable=false, Countable=false ...

  1. $skip 在“用户”或其他顶级 EntitySet 项目( https://graph.microsoft.com/v1.0/groups ?$skip=5)上是否可用?它可用于其他项目 ( https://graph.microsoft.com/v1.0/me/contacts ?$skip=5 )。我知道 $skipToken,但不一样。

  2. 如果属性是可排序的,我可以在 $metadata 中找到某处吗?例如 user.displayName 是可排序的,但 user.mail 或 user.givenName 不是。这在 $metadata 中会很方便。有计划将其引入 $metadata 吗?

  3. 此公式中的 OrderBy DESC https://graph.microsoft.com/v1.0/users ?$orderBy=displayName%20desc被忽略,它显示按 ASC 排序的项目,我做错了吗?

0 投票
1 回答
70 浏览

office365api - 有什么方法可以在 Web 浏览器上从 ADAL.NET 库(本机应用程序)访问资源而无需再次进行登录活动?

我目前正在创建使用 Microsoft Graph API 的通用 Windows 应用程序(本机)。对于身份验证,我通过在 AuthenticationContext ( https://github.com/AzureAD/azure-activedirectory-library-for-dotnet )上调用 GetTokenAsync() 将 ADAL 用于 .NET 库。该库将自动提示用户输入其凭据的登录窗口。

后来我被要求在 Web 浏览器上打开 OneNote URL。我设法从 Microsoft Graph API (OneNote API) 获取笔记 URL,然后我意识到当我尝试在浏览器上打开 URL 时,我被重定向到 Microsoft 登录页面 ( http://login.microsoftonline.com )。

这对用户体验不是很好,因为他们需要输入两次凭据(在 ADAL 提示窗口和浏览器上)。有什么方法可以让用户只进行一次登录活动吗?

0 投票
1 回答
443 浏览

microsoft-graph-api - 对话线程和对话有什么区别?

我正在调查文档,但我不清楚conversationThread和Microsoft Graph 上的对话(v1.0 参考)之间到底有什么区别?

对话的文档状态:对话是线程的集合,线程包含该线程的帖子。对话中的所有线程和帖子共享相同的主题。关系是线程。在这里,我假设同一主题意味着在该对话的保护伞下?

另一方面,conversationThread的文档指出:conversationThread 是帖子的集合。最后一个帖子的收件人集合是整个线程的聚合收件人。一个线程可以有越来越多的收件人。当收件人从线程中删除时,将创建一个新线程。关系是职位。这里没有线索,如果 conversationThread 是帖子的集合,那与对话提供的内容几乎相同?

我一直在努力做什么?我正在使用 Fiddler 来处理 HTTP 请求groups/<id>/conversationsgroups/<id>/threads并且我注意到最明显的区别是它threads有一个没有的isLocked属性。conversations然后我的脑海中突然出现了一个问题:“为什么以及在什么情况下我会使用group/<id>/threadsover group/<id>/conversations?”。也许是因为我不明白conversationThreadconversation之间的区别。

请记住,我是 Microsoft Graph 的新手,如果社区可以帮助我澄清这个问题,我将不胜感激。

提前谢谢了!

编辑 使用 Fiddler,我们设法创建了一个新线程。但是,它不是按预期在指定对话中创建新线程,而是创建一个新对话以与新线程一起使用。A 还尝试在新创建的线程中创建新帖子,但我面临以下错误:“不支持 OData 请求”使用请求正文:“ { "body": { "contentType": "application/json", "content": "This is a test" } }

0 投票
1 回答
630 浏览

office365 - 通过代码新创建的 Azure AD 应用程序不会生成具有所需角色的令牌

我们正在尝试使用 Microsoft Graph 客户端创建具有“ActivityFeed.Read”权限的 Azure AD 应用程序。下面的示例成功创建了应用程序,但从该应用程序生成的令牌不包含角色“ActivityFeed.Read”。如果我们去 azure 门户并对新创建的应用程序进行任何简单的更改并手动保存并等待一分钟,那么生成的令牌具有所需的角色。

以下是创建新应用程序后立即用于 oauth2 身份验证的解码 jwt 令牌数据。

下面是解码后的用于 oauth2 身份验证的 jwt 令牌数据,我们进行了一些手动更改并保存后。

请让我们知道如何以编程方式创建具有所需角色的应用程序。

0 投票
1 回答
520 浏览

microsoft-graph-api - 在 Microsoft Graph 中创建线程

我正在使用 Fiddler 为我的对话创建一个新线程,并且我正在关注此处的文档,但出现此错误:

真正奇怪的是我使用的是文档中的确切请求模型。

我明白 Posts 属性很明显丢失了,但是这个属性应该放在哪里呢?

像这样,

没有工作并抛出以下错误消息:

我非常感谢您对这个问题的意见。

提前谢谢了!

编辑:在示例模型中添加了以下内容,我能够创建一个新线程: "posts": [{}]

0 投票
1 回答
187 浏览

microsoft-graph-api - 图形 API PATCH 更新统一组对象中的 mailEnable 标志

当我使用 Microsoft Graph API 创建统一组,然后尝试更新组以将mailEnabled布尔标志设置为“false”时,更新 REST 调用似乎成功,但mailEnabled标志没有更改。尽管在同一个 PATCH 请求中有其他设置(例如将可见性从“公共”翻转到“私人”或再次返回),但这些设置似乎已被应用。有趣的是,我得到了 204(无内容)的 HTTP 响应代码,但文档似乎说我应该得到一个带有完整组对象的 JSON 版本的 200 响应。

http://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/group_update文档中的示例似乎表明mailEnabled是您可以在组上更改的内容。如果不是,难道不应该有一个错误,而不是它只是成功但什么都不做吗?

0 投票
0 回答
1216 浏览

microsoft-graph-api - GraphApi API 错误代码

我正在尝试在我们的 Web 应用程序和 GraphApi 之间创建一个接口。我目前正在努力正确处理错误,因为图形 API 的文档似乎充其量是不完整的。是否有对人们应该期望的完整错误列表的参考。

问题的一个示例是我在访问令牌过期后发出请求。错误代码不在列表中(graph.microsoft.io docs/overview/errors 页面)并且格式不同(大写)。它似乎也与诸如“Request_BadRequest”之类的天蓝色错误代码有很大不同。这可以在题为“错误代码和错误处理 | Graph API 概念”的 MSDN 文章中找到。

该文档指出“您可以使用此处返回的信息来代替返回的 HTTP 状态代码,或者除了返回的 HTTP 状态代码之外。”。但是,如果他们在测试版之外进行更改,这真的很难。

错误响应正文示例:

0 投票
2 回答
631 浏览

asp.net - 通过图形 API 访问 OneDrive for Business 时出错

我已经构建了一个 asp.net 应用程序,它成功地使用 App Only Token 和 Graph 访问 o365 交换。我现在正尝试使用相同的令牌和类似于以下内容的 Get 请求访问特定用户的 OneDrive for Business 文件:

https://mycomp-my.sharepoint.com/_api/v2.0/drives/simon@mycomp.com/items

但我收到以下错误:

3001000;reason='验证请求时出错。';category='invalid_client'

知道错误的原因是什么吗?

0 投票
1 回答
133 浏览

microsoft-graph-api - Microsoft.Graph.createLink:400 未指定版本

我正在尝试使用Microsoft.Graph.CreateLink 操作为 OneDrive 项目创建共享链接:

我收到以下错误:

除了 API 端点之外,方法描述或元数据都不包含有关所需版本的任何信息。