标签: microsoft-graph

如何在特定时间段内获取microsoft graph API中的忙/闲房间详情?

是否有任何微软办公室图形API可用,我可以获得可用和繁忙的会议室详细信息.

我的要求是,我将传递一些开始日期时间和结束日期时间,并期望所有可用和繁忙的房间列表.

至于我知道我们可以添加room outlook门户管理部分.

我通过以下findRoomLists和findrooms API他们只是提供房间信息而不是状态忙/免费.我想要状态也是图API中有任何功能.

https://graph.microsoft.com/beta/me/findRoomLists https://graph.microsoft.com/beta/me/findRooms 已经通过以下链接但没有帮助.

如何使用Microsoft Graph API显示当前可用会议室列表

无法使用Office365 Calendar API获取会议室的所有繁忙时间

谢谢Ajay Tiwari

microsoft-graph

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

如何使用新的microsoft graph api创建身份验证令牌?

我一直在用这个:

https://github.com/Azure-Samples/active-directory-php-graphapi-web.git
Run Code Online (Sandbox Code Playgroud)

访问图表api,这是有效的.我的Azure注册应用程序能够查询API以获取目录中的用户列表.

但现在我想在目录中列出用户的文件夹.这一页

http://graph.microsoft.io/docs
Run Code Online (Sandbox Code Playgroud)

说网址应该是:

https://graph.microsoft.com/v1.0/me/drive/root/children
Run Code Online (Sandbox Code Playgroud)

当我在我的REST调用中使用该URL时,我得到了

"code": "InvalidAuthenticationToken",
"message": "CompactToken parsing failed with error code: -2147184105"
Run Code Online (Sandbox Code Playgroud)

有道理,它从中得到一个令牌

https://graph.windows.net
Run Code Online (Sandbox Code Playgroud)

所以,我迷路了.有许多不同版本的API,来自消费级onedrive(以前称为skydrive),第一个图形api(我通过https://graph.windows.net访问),office 365 API(我通过https访问: //login.microsoftonline.com)现在图形api(以前的通用api https://graph.microsoft.com)我只是不知道从哪里开始寻找正确的信息.

我目前正在使用PHP,我确信微软的支持平台列表会相当低,但是关于访问令牌生成如何在最新的API中与o365 api相对于其他图表的任何方向api(在graph.windows.net)将不胜感激.

有人像我一样困惑吗?是否有一些中心参考解释了这些api与如何访问它们之间的所有差异?

php azure office365 azure-ad-graph-api microsoft-graph

5
推荐指数
1
解决办法
5491
查看次数

企业版Exchange Server上的MicrosoftGraph

MicrosoftGraph API(特别是WebHooks)是否可以用于企业/本地Exchange服务器(而不是Office 365)上的帐户。我看到的有关设置OAuth身份验证所需的应用程序的所有文档都使用Azure。

microsoft-graph

5
推荐指数
1
解决办法
1221
查看次数

图谱API:PUT/beta/groups/<groupId> /团队验证错误

问题

PUT请求/beta/groups/<groupId>/team失败,并出现以下错误:

{
    "error": {
        "code": "AuthenticationError",
        "message": "Error authenticating with resource.",
        "innerError": {
            "request-id": "e4385864-85e4-4fa6-8878-458988c584e4",
            "date": "2017-11-10T10:29:39"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

提供了一个Bearer令牌,它是通过使用委托权限生成的Group.ReadWrite.All.

端点记录在此处.

到目前为止我找到的东西

看起来,它与团队资源有关.以下请求不起作用:

  • PUT /beta/group/<groupId>/team
  • GET /beta/me/joinedTeams

两者都失败了AuthenticationError.

更新

/beta/group/<groupId>/team 现在工作.

microsoft-graph microsoft-teams

5
推荐指数
1
解决办法
569
查看次数

如何在Microsoft graph API中过滤组成员?

在阅读Microsoft文档后,我确定可以使用OData查询参数过滤组成员,因为https://developer.microsoft.com/zh-cn/graph/docs/api-reference/v1.0/api/group_list_members

请求GET URL- https: //graph.microsoft.com/v1.0/groups/ {groupId} / members?filter = startswith(givenname,'V')

在上面的URL中,从https://graph.microsoft.com/v1.0/groups使用了groupId

但是,当我尝试使用工作帐户登录名使用Graph Explorer(https://developer.microsoft.com/en-us/graph/graph-explorer)获取结果时,它不起作用。

我也尝试在SDK中使用它(我已经使用Microsoft graph API SDK在我的代码中实现了graph API),但仍然遇到相同的错误。

并给出以下错误-

{“错误”:{“代码”:“ Request_UnsupportedQuery”,“消息”:“当前不支持对参考属性查询的指定过滤器。”,“ innerError”:{“ request-id”:“ 96f3ffef-56f5- 42e3-82f2-64813106b729“,” date“:” 2018-02-13T10:59:39“}}}

这是因为“成员”不是资源类型吗?所以它没有属性,所以我们不能过滤此结果?

如果是这样,那么还有其他方法可以获取已过滤的组成员吗?

在Github上也发布了问题-https: //github.com/microsoftgraph/microsoft-graph-docs/issues/2239

azure-active-directory asp.net-web-api2 microsoft-graph

5
推荐指数
1
解决办法
1479
查看次数

混合环境,404具有内部部署邮箱,200个用于Exchange联机

我编写了一个能够与Exchange Online帐户通信的应用程序,我正在尝试测试以查看使其与在Hybrid中运行的内部部署帐户一起使用所需的步骤.

我有:

  • Windows Server 2012 R2
  • 兑换2016 CU8(带/PrepareAD跑)
  • 互联网访问路径/api/v2.0/autodiscover/autodiscover.json
  • 运行HCW
  • AD Connect正在运行
  • Active Directory与Azure Active Directory同步
  • 我已注册的应用程序的权限看起来很好(阅读日历事件/读写日历事件)

不幸的是,我404在尝试访问日历活动时遇到了问题:

curl -v -H 'Content-Type: application/json' -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJub25jZSI6IkFRQUJBQUFBQUFCSGg0a21TX2FLVDVYcmp6eFJBdEh6RE1mbEZNYTYwaktGRHRhUXp0ZGVkM2V6Z0ZfUzlLMjdDRmQxSHlfZGdRcnR6WlJBczRDV095R3E1Vl9OZW9MSFNKTGpzblNCSDNCQU9oQnBzU18wVmlBQSIsImFsZyI6IlJTMjU2IiwieDV0IjoiU1NRZGhJMWNLdmhRRURTSnhFMmdHWXM0MFEwIiwia2lkIjoiU1NRZGhJMWNLdmhRRURTSnhFMmdHWXM0MFEwIn0.eyJhdWQiOiJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8wODY1YjBhYi02ZjYwLTQzNjMtYTEwZi05NWU5ZTc5ZjlmODEvIiwiaWF0IjoxNTE4OTc5NzQ0LCJuYmYiOjE1MTg5Nzk3NDQsImV4cCI6MTUxODk4MzY0NCwiYWlvIjoiWTJOZ1lKRE0reDVXbGhWNUlrajUwbDB4THNacEFBPT0iLCJhcHBfZGlzcGxheW5hbWUiOiJIQy1XZWIiLCJhcHBpZCI6ImVkZjlkY2M0LThjNjAtNDg3ZS1hYmUyLTI4MjcyYTRlZGJlMCIsImFwcGlkYWNyIjoiMiIsImlkcCI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0LzA4NjViMGFiLTZmNjAtNDM2My1hMTBmLTk1ZTllNzlmOWY4MS8iLCJvaWQiOiJkNTUzMTE2My01MTcxLTRmZjctYTNjMS04NWFlNzUzMjkzNTIiLCJyb2xlcyI6WyJNYWlsLlJlYWRXcml0ZSIsIkNvbnRhY3RzLlJlYWRXcml0ZSIsIkRpcmVjdG9yeS5SZWFkLkFsbCIsIk1haWwuUmVhZCIsIkNhbGVuZGFycy5SZWFkV3JpdGUiXSwic3ViIjoiZDU1MzExNjMtNTE3MS00ZmY3LWEzYzEtODVhZTc1MzI5MzUyIiwidGlkIjoiMDg2NWIwYWItNmY2MC00MzYzLWExMGYtOTVlOWU3OWY5ZjgxIiwidXRpIjoiNkxJT3g1bWQ4ay05ajhBUUtiY2hBQSIsInZlciI6IjEuMCJ9.AWt_ANsH8sk15WeH1AgD6SD0Ki8VILMvzkbSMju_YFGKc5cVkrGp7Skzt64uDM8rI6Py5Y-1c3srXwON2oSihkRskfz5vG4nIlbFnuYd3Ij2Vz1ktpNnCeMAnAK2T8ifk2visRSvchRbuBNZZyamwRjActdDF9BS8NygUgmmygK4mPjOIab17PJPz5PisvRbCA2jBLWLvbu9RYrLH-xGuoLd2PLTbsn2WSVi3er4XztZCcK7XfVWe-0wjrV6qBufd5z0hH_KpQLdzPtLOzSUGUAcXGa0mBPceTWULQvQ-LPcAJO57F0ir5k22fWzlkOfUxQb9eGWREUm1cAPWk3CPw" "https://graph.microsoft.com/v1.0/users/oq@healthcentrified.co.uk/calendar/events"
*   Trying 137.116.241.64...
* Connected to graph.microsoft.com (137.116.241.64) port 443 (#0)
* found 148 certificates in /etc/ssl/certs/ca-certificates.crt
* found 592 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_CBC_SHA384
*        server certificate verification OK
*        server certificate status verification …
Run Code Online (Sandbox Code Playgroud)

outlook-restapi microsoft-graph

5
推荐指数
1
解决办法
478
查看次数

Microsoft Graph-在一个请求中下载内容

我在Web浏览器中使用以下方法来使用Microsoft Graph获取DriveItem的文件内容:

GET /drives/{drive-id}/items/{item-id}
// Get the @microsoft.graph.downloadUrl property of the returned DriveItem
GET {downloadUrl}
Run Code Online (Sandbox Code Playgroud)

这需要两个GET电话。

我也知道这个API:

GET /drives/{drive-id}/items/{item-id}/content
Run Code Online (Sandbox Code Playgroud)

如此处记录:

下载DriveItem的内容

但是/content端点有两个问题:

  1. 它返回302 Found响应,从而导致重定向,该重定向需要另一次往返来获取内容
  2. 如本文所述,该API在使用XHR的JavaScript应用程序中不起作用:OneDrive-CORS支持

如何在一个请求中获取DriveItem的文件内容?

javascript onedrive microsoft-graph

5
推荐指数
0
解决办法
272
查看次数

使用Microsoft图形C#ASP.NET将新文件上传到OneDrive

尝试将文件上传到尚不存在的onedrive。我设法得到它来更新现有文件。但是似乎无法弄清楚如何创建一个全新的文件。我已经使用Microsoft.Graph库完成了此操作。

以下是用于更新现有文件的代码:

public async Task<ActionResult> OneDriveUpload()
    {
        string token = await GetAccessToken();
        if (string.IsNullOrEmpty(token))
        {
            // If there's no token in the session, redirect to Home
            return Redirect("/");
        }

        GraphServiceClient client = new GraphServiceClient(
            new DelegateAuthenticationProvider(
                (requestMessage) =>
                {
                    requestMessage.Headers.Authorization =
                        new AuthenticationHeaderValue("Bearer", token);

                    return Task.FromResult(0);
                }));


        try
        {
            string path = @"C:/Users/user/Desktop/testUpload.xlsx";
            byte[] data = System.IO.File.ReadAllBytes(path);
            Stream stream = new MemoryStream(data);
            // Line that updates the existing file             
            await client.Me.Drive.Items["55BBAC51A4E4017D!104"].Content.Request().PutAsync<DriveItem>(stream);

            return View("Index");
        }
        catch (ServiceException ex)
        { …
Run Code Online (Sandbox Code Playgroud)

c# onedrive microsoft-graph

5
推荐指数
1
解决办法
2781
查看次数

Microsoft Office 365组:访客用户无法使用图形端点进行驱动器调用

我们的应用程序通过对驱动器项执行Get调用来读取组驱动器内容.这曾经适用于内部成员和访客用户.它现在为内部成员工作,但不再为访客用户工作.以下是样本调用.

https://graph.microsoft.com/v1.0/drives/b!uey_5Lpf8Eu0-5HlGvJvFga89s_hTxNAg9kSsTlOBqajRqOF3ec-Rp6uqtbLNt4w/items/016GMDDVB74LSDDYRHHRHJ5KV5HHVXWQTT?$ select = webUrl,name

我们得到的回应是这样的

{
"error": {
    "code": "unauthenticated",
    "message": "Role Claim does not exist for Service Asserted App V1.",
    "innerError": {
        "request-id": "5ed31bd5-283c-4ce2-a6d6-a249f94ae9ee",
        "date": "2018-06-27T09:39:01"
    }
}
Run Code Online (Sandbox Code Playgroud)

以前工作得很好,最近Drive API有什么变化吗?我已检查更改的日志,但在上一版本中没有提到任何相关内容.

office365 onedrive microsoft-graph

5
推荐指数
1
解决办法
137
查看次数

MS Graph - 401看似未经授权,具有适当的令牌和访问权限

我正在使用Azure上托管的ASP.NET Core 2.0应用程序,并使用MSAL通过Microsoft对用户进行身份验证.我通过身份验证过程获取基本信息,如名称,用户名和组声明.但是,我想通过MS Graph访问一些其他信息,例如用户个人资料照片.初始身份验证和令牌获取平稳运行,并向https://graph.microsoft.com/beta/me返回发送请求200 OK.https://graph.microsoft.com/beta/me/photo/$value然而,当试图打电话时,我得到一个401 - Unauthorized回报.

我在这个问题上看到了其他几篇文章,但大多数人都认为开发人员忘记要求正确的同意,从错误的端点获取令牌或类似的问题.所有这些我都证实不是这样的.

我已经确认使用https://jwt.ms/在令牌中包含了适当的范围.我也尝试过要求更大的范围.目前我正在使用以下范围:openid profile User.ReadBasic.All User.Read.All User.ReadWrite Files.ReadWrite.All.根据获取用户的beta参考,最少需要的权限是,User.Read并根据获取照片的参考,最少需要的权限也是User.Read.使用Graph Explorer我还确认我应该使用我的权限访问该照片,但是,我没有在我的个人资料上设置任何图片,因此它给了我一个404回复.

我不知道为什么我无法访问个人资料照片,所以任何建议都非常感谢.如果您需要更多信息或详细信息,请告诉我们.如果相关,我有一个自定义中间件来处理读取用户信息的后验证过程,这也会对照片的MS Graph进行额外调用.

编辑:

我也试过https://graph.microsoft.com/beta/users/{my-user-id}/photo/$value产生相同的结果 - 图形浏览器中的404和我的代码中的401

编辑2:代码

这是我正在使用的代码.第一个代码段位于中间件中,该中间件将来自经过身份验证的用户的声明置于特定格式.我刚刚在返回时设置了一个断点并检查了响应对象.

public async Task GetUserPhotoAsync(string userid, HttpContext context)
{
    HttpClient client = new HttpClient();
    //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    var result = await new TokenHelper(_settings).GetAuthenticationAsync(userid, context, new string[] { "User.ReadBasic.All", "User.Read.All", "User.ReadWrite", "Files.ReadWrite.All" });
    var …
Run Code Online (Sandbox Code Playgroud)

c# azure microsoft-graph azure-ad-msal asp.net-core-2.0

5
推荐指数
1
解决办法
775
查看次数