请求获取日历事件响应 404,前提是分配了权限并使用 Microsoft Graph API 获取了 accessToken

2023-12-04

我想构建一个具有获取其他人的日历事件功能的网络应用程序。我已经注册了该应用程序https://apps.dev.microsoft.com/并要求Calendars.Read允许。我确信管理员已同意分配这些权限(我让他通过管理员同意页面来完成)。

enter image description here

下面是我的 ASP.Net 控制器代码,旨在测试事件 API。目标API是:

MicrosoftGraphCalendarApi = "https://graph.microsoft.com/v1.0/users/{0}/events";
public async Task<string> GetUserCalendar()
{
    ConfidentialClientApplication cc =
        new ConfidentialClientApplication(Globals.ClientId, Globals.RedirectUri,
            new ClientCredential(Globals.ClientSecret),
            null,
            new TokenCache());

    AuthenticationResult result =
        await cc.AcquireTokenForClientAsync(new string[] { "https://graph.microsoft.com/.default" });

    HttpClient client = new HttpClient();
    string requestUrl = String.Format(Globals.MicrosoftGraphCalendarApi, "[email protected]");

    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, requestUrl);
    request.Headers.Authorization =
        new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", result.AccessToken);

    HttpResponseMessage response = await client.SendAsync(request);
    response.EnsureSuccessStatusCode();

    string json = await response.Content.ReadAsStringAsync();
    return json;
}

当被调用时,我似乎设法得到了accessToken。然而,要求获得events回应一个404错误。以下是完整的回应:

{
    StatusCode : 404,
    ReasonPhrase: 'Not Found',
    Version : 1.1,
    Content : System.Net.Http.StreamContent,
    Headers:
    { 
      Transfer-Encoding: chunked
      request-id: 34f1f9b3-34c9-444f-9037-5446884e3fb9
      client-request-id: 34f1f9b3-34c9-444f-9037-5446884e3fb9
      x-ms-ags-diagnostic: 
        {
            "ServerInfo":
            {
                "DataCenter": "East Asia",
                "Slice": "SliceA",
                "ScaleUnit": "000",
                "Host": "AGSFE_IN_2",
                "ADSiteName": "HKG"
            }
        }      
      Duration: 1250.6509
      Cache-Control: private
      Date: Fri, 03 Nov 2017 02:53:03 GMT
      Content-Type: application/json
    }
}
System.Net.Http.HttpResponseMessage

我不知道问题出在哪里。请帮忙,谢谢。


终于解决了。用户必须首先“共享”或“发布”目标日历。否则,即使管理员同意,其他帐户也无法访问它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

请求获取日历事件响应 404,前提是分配了权限并使用 Microsoft Graph API 获取了 accessToken 的相关文章

随机推荐

  • Entrypoint的exec形式通过shell执行

    我正在构建一个基于 Windows 的 docker 镜像 FROM mcr microsoft com dotnet framework aspnet 4 8 windowsservercore ltsc2019 omitted for
  • 在标签中绑定值

    是否可以将 JavaFX 滑块中的双值绑定到标签 我想要得到这样的东西 m maxSlider new Label Right Slider Val m slider getValue1 m maxSlider textProperty b
  • Google Cloud Messaging 上的最大主题数

    我想避免在应用程序级别管理设备令牌的复杂性 一名用户在 iOS 和 Android 上使用多台设备 多个用户订阅一个应用程序组 将 1 和 2 作为 GCM 的主题显然是一个简单的解决方案 这样我只需在发送通知时处理我的应用程序 UserI
  • 文件无效:错误:转储失败,因为找不到 AndroidManifest.xml

    当我尝试在 Android 市场上传我的 Android 应用程序时 我遇到了这个问题 我去过stackoverflow 的这个问答我相信导出时我的 AndroidManifest xml 位于 apk 文件中 并且该 xml 文件的所有内
  • AJAX上传显示多个文件上传中仅文件的进度

    请帮我更改下面的代码 我有多个从 HTML 上传的文件 ajax 将所有上传的文件发布到一个 php 脚本 该脚本向进度函数发送反馈 问题是所有三个进度条只监听一个文件上传
  • 如何在 JSF 中收集 List 的提交值?

    我有一颗豆子List
  • 是否可以实现 __super 宏?

    请告诉我是否有办法手动实现微软特定的 super宏观 class Base public void func something class Derived public Base public void func Base func ju
  • 带有 Java 线性和对数滤波器的 MFCC

    我正在用Java实现MFCC算法 Java 中有三角滤波器和 MFCC 的示例代码 链接在这里 MFCC Java但是我应该遵循用 Matlab 编写的代码 MFCC MATLAB 我的问题是在 Matlab 代码中 它讨论了线性和对数滤波
  • Java 8 流是原子的吗?

    我读了一些帖子 但我仍然很困惑 我知道并行流将以利用 CPU 的并行方式执行 我相信子作业将作为原子单元执行 对吗 但是常规的 Java 8 流呢 如果我执行下一行代码 users stream map user gt user getUs
  • 在表单提交的网址中间添加问号

    当我单击表单中的提交按钮时 它会添加一个 就在 之前 因此 app pageName 更改为 app pageName 这是正常行为吗 代码只是基本的东西 angular module myApp controller MyCtrl fun
  • 如何在进入 Java 应用程序时更改光标

    我遇到了一些我无法解决的问题 我正在编写一个带有接受拖放操作的 JList 的 Swing Java 应用程序 我想在将文件或文件夹从系统拖到 Java 应用程序上时更改光标 我自己找到了 不过还是感谢克林顿的回答 这是我用过的 首先创建
  • Socket tcp C# 如何清除输入缓冲区?

    我正在为 Windows Phone 编写一个应用程序 我需要与服务器通信并传输数据 SERVER是用C 编写的 我无法修改它 客户是我必须写的 服务器被设计为客户端连接到它并传输数据 连接对于所有传输都保持打开状态 通过用 C 编写代码
  • Infinispan相当于ehcache的copyOnRead和copyOnWrite

    我计划在现有的网络应用程序中实施缓存解决方案 没什么复杂的 基本上是一个支持溢出到磁盘和自动驱逐的并发映射 将来可能需要对缓存进行集群 但不是现在 我喜欢 ehcache 的 copyOnRead 和 copyOnWrite 功能 因为这意
  • 将 Crypto++ 对象保存到 std::vector

    我想将 Crypto 密钥保存到std vector
  • 如何使scrollviewer滚动像素而不是组件(wpf)

    我试图让我的滚动查看器完美地滚动 也就是说 我有一个滚动查看器 它包含一个 stackpanel 堆栈面板包含一个用户制作的用户控件 并且它们可以在运行时动态增加或减少 问题是 假设我的堆栈面板中只有 2 个用户控件 滚动查看器只有 2 级
  • 拖动对象时启用其他事件

    我正在开发一个控制台 我想将按钮拖动到网格中 要拖动按钮 我使用以下过程 Public drag As Boolean False Public ptX As Integer 0 Public ptY As Integer 0 Public
  • MongoDB:基于另一个集合从一个集合中进行条件选择

    我对 MongoDB 相当陌生 需要帮助根据另一个集合的数据对一个集合进行选择或某种左连接 我有两个集合 动物和膳食 我想获取在某个日期 假设是 20171001 之后上次注册膳食的动物 以确定该动物是否仍然活跃 collection an
  • 在 SQL Server 上的特定位置添加列?

    我想知道是否有办法在创建 SQL Server 表后将列添加到特定位置 Thanks 您可以在 Management Studio 中执行此操作 您可以通过在保存更改之前生成 SQL 脚本来检查完成此操作的方式 基本上是通过以下方式实现的
  • React JS - 如何在状态更新之前阻止渲染 [Hooks]

    我有一个从 API 获取数据以向用户显示一些详细信息的组件 const ItemDetail match gt const item setItem useState null useEffect gt const abort new Ab
  • 请求获取日历事件响应 404,前提是分配了权限并使用 Microsoft Graph API 获取了 accessToken

    我想构建一个具有获取其他人的日历事件功能的网络应用程序 我已经注册了该应用程序https apps dev microsoft com 并要求Calendars Read允许 我确信管理员已同意分配这些权限 我让他通过管理员同意页面来完成