标签: microsoft-graph

Office 365 REST Api和Microsoft Graph之间的区别

我想知道Office 365 REST API和Microsoft Graph之间的区别,因为我们可以找到这两者的类似功能.

https://msdn.microsoft.com/en-us/office/office365/howto/rest-api-overview

以下是上面链接的文字:

Office 365 API功能也可通过Microsoft Graph获得,Microsoft Graph是一种统一的API,包括来自其他Microsoft服务(如Outlook,OneDrive,OneNote,Planner和Office Graph)的API,可通过单个端点和单个访问令牌访问.

如果没有这样的差异,你打算弃用这些吗?

谢谢

api office365 office365api office365connectors microsoft-graph

7
推荐指数
1
解决办法
4153
查看次数

Microsoft Graph范围v2 oauth

我正在尝试构建一个简单的Ruby应用程序,它可以连接到Microsoft Graph API并获取有关用户的基本信息,例如经理或直接下属.

我已经按照0365教程,我有一个能够获得用户邮件的工作应用程序.但是,当我尝试使用会话令牌查询图api时,我收到一个错误:

response.body
=> "{\r\n  \"error\": {\r\n    \"code\": \"InvalidAuthenticationToken\",\r\n    \"message\": \"Access token validation failure.\",\r\n    \"innerError\": {\r\n      \"request-id\": \"18cbc6be-5254-400c-9780-7427376587fb\",\r\n      \"date\": \"2016-06-30T22:21:55\"\r\n    }\r\n  }\r\n}" 
Run Code Online (Sandbox Code Playgroud)

我正在使用示波器

SCOPES = [ 'openid', 'profile', 'https://outlook.office.com/contacts.read', 'offline_access' ] 
Run Code Online (Sandbox Code Playgroud)

我刚刚被建议包括范围' https://graph.microsoft.com/user.read ',但是当我将其添加到应用程序时,我甚至在点击用户登录页面之前得到以下错误:

AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope openid profile offline_access https://graph.microsoft.com/user.read is not valid.
Run Code Online (Sandbox Code Playgroud)

任何有关这方面的帮助将不胜感激!

microsoft-graph

7
推荐指数
1
解决办法
4464
查看次数

请求访问令牌时的资源参数?

我正在按照本指南进行Microsoft Graph身份验证.我能够成功完成第一个请求(对于授权代码)但是遇到了第二个请求(请求访问令牌)的问题.

第二个请求的参数(用于访问令牌):

client_id: <my id>
client_secret: <my secret>
code: <authorization code returned from first request>
redirect_uri: http://localhost:8080/Callback
grant_type: authorization_code
scope: https://graph.microsoft.com/user.read
Run Code Online (Sandbox Code Playgroud)

第二次请求出错:

{
  "error": "invalid_resource",
  "error_description": "AADSTS50001: Resource identifier is not provided.\r\nTrace ID: <my trace id>\r\nCorrelation ID: <my correlation id>\r\nTimestamp: 2017-05-03 15:25:42Z",
  "error_codes": [
    50001
  ],
  "timestamp": "2017-05-03 15:25:42Z",
  "trace_id": <my trace id>,
  "correlation_id": <my correlation id>
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加这个额外的参数,我的请求工作正常(返回一个承载和刷新令牌):

resource: https://graph.microsoft.com/
Run Code Online (Sandbox Code Playgroud)

除了在此页面获取访问令牌下的示例之外,我没有在文档中的任何位置看到此资源参数.

我的问题是:

  1. 当我的请求似乎与文档匹配时,为什么会出现上述错误?
  2. 我什么时候需要包含资源参数?

编辑:请参阅下面的Marc答案以及我的评论回复.

原来我使用以下网址: …

microsoft-graph

7
推荐指数
1
解决办法
3845
查看次数

Firebase自定义Auth与Microsoft Azure/Graph

我正在构建一个使用Microsoft Graph登录的企业应用程序.成功签名后,我想使用令牌发送给Firebase Auth进行身份验证(这样我就可以保护对数据库的访问).

成功登录后收到的令牌无法直接用于Firebase.

Firebase自定义身份验证说明页面上,它说:

获取项目的服务器密钥:

  1. 转到项目设置中的"服务帐户"页面.
  2. 单击"服务帐户"页面的Firebase Admin SDK部分底部的"生成新私钥".
  3. 新服务帐户的公钥/私钥对会自动保存在您的计算机上.将此文件复制到您的身份验证服务器

第三点说你需要输入密钥到认证服务器.这可能使用Microsoft GraphAzure AD吗?

Firebase为您提供的密钥是JSON文件.我已经检查了Microsoft App注册门户,它允许您编辑应用程序Manifest,但没有运气.

JSON文件如下所示:

{
    "type": "service_account",
    "project_id": "APP_ID",
    "private_key_id": "KEY_ID_VALUE",
    "private_key": "-----BEGIN PRIVATE KEY----<KEY VALUE>-----END PRIVATE KEY-----\n",
    "client_email": "firebase-adminsdk-0ubvc@********.iam.gserviceaccount.com",
    "client_id": "XXXXXXXXXXXX",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-0ubvc%XXXXXXXX.iam.gserviceaccount.com"
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到任何涵盖此问题的github项目或stackoverflow线程.

如何使用MS Graph或Azure AD接收自定义令牌?

azure-active-directory firebase-authentication microsoft-graph

7
推荐指数
1
解决办法
3910
查看次数

无法访问Microsoft Graph API中的/ outlook/masterCategories端点

似乎任何端点开始时都会/outlook返回此错误:

GET https://graph.microsoft.com/beta/me/outlook/masterCategories
{
    "error": {
        "code": "RequestBroker-ParseUri",
        "message": "Resource not found for the segment 'Outlook'.",
        "innerError": {
            "request-id": "a75d1c9a-c6ae-4b69-83ca-fc0e467a4ad7",
            "date": "2017-12-26T17:23:17"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我已授权范围,mail.read user.read mailboxsettings.readwrite因此我应该能够访问用户的收件箱类别,但是以本文中提到的"outlook"开头的beta API端点:

https://blogs.msdn.microsoft.com/exchangedev/2017/10/09/new-outlook-apis-in-the-microsoft-graph-rooms-rules-categories-headers-and-time-zones/

无论如何都无法访问,我做错了什么?

请记住,我测试了这个端点,它运行良好:https://graph.microsoft.com/beta/me/mailFolders

但是这一个:https://graph.microsoft.com/beta/me/outlook/masterCategories返回上面的错误.

outlook-restapi microsoft-graph

7
推荐指数
1
解决办法
326
查看次数

如何使用javascript实现使用xbox登录?

我使用microsoft graph api来实现signin但是我没有得到用户的xbox细节.如何获取xbox详细信息.

我希望用户的xbox id传递到xboxapi.com中的端点以获取用户的xbox详细信息.

我从微软图api获得的响应是​​在图像中.我需要xbox的详细信息.在此输入图像描述

javascript xbox microsoft-graph xbox-live

7
推荐指数
1
解决办法
124
查看次数

在$ select中指定时,组delta查询不返回成员

我正在使用Microsoft Graph API v1.0与Azure AD集成.我正在使用delta查询获取组,并members$select查询参数中指定属性以及其他一些属性,因为我们的集成不使用大多数Azure AD组属性.

这曾经起作用,但是当前在执行相同查询时,不会从端点返回成员.如果我没有指定,$select则返回成员以及许多其他组属性.

在挖掘端点时,我注意到我可以使用$ expand查询参数获取成员.这是要求成员包含在delta查询结果中的正确方法吗?

作为参考,这是不再有效的查询如下所示:

https://graph.microsoft.com/v1.0/groups/delta?$select=displayName,id,members
Run Code Online (Sandbox Code Playgroud)

azure-active-directory microsoft-graph

7
推荐指数
1
解决办法
342
查看次数

Microsoft Graph API-最近的文档未刷新

我们正在研究Office365和Sharepoint集成应用程序。该应用程序与文档管理有关,Sharepoint组是关键概念。

主要功能之一是为“组”和“用户”列出“最近”文件。为了获取最近的Group文件,我们使用Microsoft Graph api上的查询:/groups/{groupId}/drive/items/root/children 为了获取User的最近文件,我们使用查询:/me/drive/recent

接下来的问题是:由于第一个查询对于Group的最近文件运行良好,并且可以立即返回更新的结果,因此第二个查询(用于获取用户的最近文件)的刷新速度非常慢,有时我们需要等待几天获得最新结果。

有人对如何克服这个问题有一些建议吗?

提前致谢。

sharepoint office365 microsoft-graph

7
推荐指数
0
解决办法
383
查看次数

如何使用Microsoft Graph API获取当前站点的siteId?

从文档中,我找不到任何方法来获取我放置webpart的网站的siteId.

例如,

我当前的网站是:https://{hostname}/sites/main1< - 不是root网站,但我想获得这个siteId

我在这里测试我的webpart: https://{hostname}/sites/main1/_layouts/15/workbench.aspx

我怎样才能做到这一点?从文档中,

站点是唯一标识符,它是以下值的组合ID:

网站集主机名(contoso.sharepoint.com)

网站集唯一ID(guid)

网站唯一ID(guid)

我可以通过使用location.hostname(是的,我使用JavaScript + React构建我的webpart)轻松获取主机名,但是如何使用Graph API轻松获取site-id?

sharepoint-online microsoft-graph spfx

6
推荐指数
1
解决办法
9413
查看次数

在Microsoft Graph/me/drive/search endpoint中发现结果

我很难弄清楚/me/drive/search端点如何与文档匹配.

当我尝试/v1.0/me/drive/search(q='myQuery')接收名称的文件时myQuery.这是有道理的.没有意义的是,如果尝试/v1.0/me/drive/search(q='.')我收到来自整个组织的巨大结果列表.看来我可以访问这些文档,但是当我尝试按名称搜索其中一个时,它们就不会出现.

  • /v1.0/me/drive/search(q='.') 返回许多文档,其中一个文档名为"我的测试文档"

  • /v1.0/me/drive/search(q='My Test Document') 没有结果.

可以预期第二个查询返回与第一个查询相同的文档.

onedrive microsoft-graph

6
推荐指数
1
解决办法
179
查看次数