我想知道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
我正在尝试构建一个简单的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身份验证.我能够成功完成第一个请求(对于授权代码)但是遇到了第二个请求(请求访问令牌)的问题.
第二个请求的参数(用于访问令牌):
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)
除了在此页面上获取访问令牌下的示例之外,我没有在文档中的任何位置看到此资源参数.
我的问题是:
编辑:请参阅下面的Marc答案以及我的评论回复.
原来我使用以下网址: …
我正在构建一个使用Microsoft Graph登录的企业应用程序.成功签名后,我想使用令牌发送给Firebase Auth进行身份验证(这样我就可以保护对数据库的访问).
成功登录后收到的令牌无法直接用于Firebase.
获取项目的服务器密钥:
- 转到项目设置中的"服务帐户"页面.
- 单击"服务帐户"页面的Firebase Admin SDK部分底部的"生成新私钥".
- 新服务帐户的公钥/私钥对会自动保存在您的计算机上.将此文件复制到您的身份验证服务器
第三点说你需要输入密钥到认证服务器.这可能使用Microsoft Graph或Azure 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
似乎任何端点开始时都会/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://graph.microsoft.com/beta/me/mailFolders
但是这一个:https://graph.microsoft.com/beta/me/outlook/masterCategories返回上面的错误.
我使用microsoft graph api来实现signin但是我没有得到用户的xbox细节.如何获取xbox详细信息.
我希望用户的xbox id传递到xboxapi.com中的端点以获取用户的xbox详细信息.
我正在使用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) 我们正在研究Office365和Sharepoint集成应用程序。该应用程序与文档管理有关,Sharepoint组是关键概念。
主要功能之一是为“组”和“用户”列出“最近”文件。为了获取最近的Group文件,我们使用Microsoft Graph api上的查询:/groups/{groupId}/drive/items/root/children
为了获取User的最近文件,我们使用查询:/me/drive/recent
接下来的问题是:由于第一个查询对于Group的最近文件运行良好,并且可以立即返回更新的结果,因此第二个查询(用于获取用户的最近文件)的刷新速度非常慢,有时我们需要等待几天获得最新结果。
有人对如何克服这个问题有一些建议吗?
提前致谢。
从文档中,我找不到任何方法来获取我放置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?
我很难弄清楚/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')
没有结果.
可以预期第二个查询返回与第一个查询相同的文档.
microsoft-graph ×10
office365 ×2
api ×1
javascript ×1
office365api ×1
onedrive ×1
sharepoint ×1
spfx ×1
xbox ×1
xbox-live ×1