【问题标题】:Office 365 REST API me/events no longer workingOffice 365 REST API 我/事件不再工作
【发布时间】:2015-09-15 11:53:30
【问题描述】:

认为我有 Office REST API 调用:https://outlook.office.com/api/v1.0/me/events 工作(几天前,我真的认为它是),但现在,虽然它返回HTTP 响应状态为 200,有效负载是格式错误的 JSON:

{
"@odata.context": "https://outlook.office.com/api/v1.0/$metadata#Me/Events",
"value": [
    {
        "error": {
            "code": "ErrorInternalServerError",
            "message": "Object reference not set to an instance of an object."
        }
    }

(请注意最后两个字符“]}”似乎丢失了,这会使它成为有效的 JSON。)

有人知道发生了什么吗?

他们在搞乱 API 吗?

对我/事件的调用是它们的主要示例之一,此处:https://msdn.microsoft.com/office/office365/APi/calendar-rest-operations 在标题为“指定实体集合中的项目”的部分中:“例如,要从用户的主日历中获取事件,请发送对以下 URL 的 GET 请求: https://outlook.office.com/api/v1.0/me/events"

迈克·皮特

【问题讨论】:

    标签: json api rest outlook


    【解决方案1】:

    这是 Outlook REST API 问题。我们已经向 Outlook API 人员上报了这个问题,他们正在努力解决这个问题。 修复后我们会通知您。

    谢谢!

    【讨论】:

      【解决方案2】:

      这似乎是一个普遍的问题 我使用 Office 365 日历 API 的实现一直工作到 13.09。 突然它不再返回任何约会项目。

      【讨论】:

      • P. S. 我已在 MSDN 支持网站上提出支持请求以解决问题。
      • 谢谢@Franz。我一直在将 cmets 添加到他们的参考页面底部,使用“此页面对您有帮助吗?”按钮,每当我在他们的各种 API 中遇到问题时,但我不确定 MS 的任何人是否真的阅读了那里所说的内容。
      【解决方案3】:

      更新: https://outlook.office.com/api/v1.0/me/events 已重新开始工作。谢谢 Outlook REST API 团队。 :)

      【讨论】:

        【解决方案4】:

        对我来说它仍然不起作用。 我正在使用托管 API,例如:

        OutlookServicesClient outlookClient = await this.GetOutlookServicesClient();

                var folderItemResult = await outlookClient.Me.Events
                    .Where(e => 
                    e.Start.Value >= uTCFrom &&
                    e.Start.Value <= uTCTo)
                    .ExecuteAsync();
        

        在请求授权令牌后,一旦日历中有项目,ExecuteAsync 就会失败。如果没有入口,则请求授权后调用 ExecuteAsync 成功。

        【讨论】:

          【解决方案5】:

          我已经从 Git Hub 下载了 Office 365 API 多租户示例,该示例可以读取联系人。 我对其进行了配置并运行它以查看它是否适用于联系人并且它工作正常。 之后我更改了代码以从我的邮箱中读取所有事件。 就像在这篇文章的初始请求中一样,有以下错误消息

          [DataServiceClientException: Fehler beim Verarbeiten des Antwortdatenstroms。 Esist ein Fehler mit der folgenden Nachricht auf dem Server aufgetreten: 对象引用未设置为对象的实例。]

          托管的 Office 365 API 与我自己调用其余的 API 有什么不同,或者 Office 365 API 中是否还有其他需要修复的地方?

          这是完整的堆栈跟踪:

          [ODataErrorException:Aus der Nutzlast wurde ein Fehler gelesen。 Weitere Informationen finden Sie in der Error-Eigenschaft.] Microsoft.OData.Core.Json.BufferingJsonReader.ProcessObjectValue() +188 Microsoft.OData.Core.Json.BufferingJsonReader.ReadNextAndCheckForInStreamError() +95 Microsoft.OData.Core.Json.BufferingJsonReader.ReadInternal() +227 Microsoft.OData.Core.Json.BufferingJsonReader.Read() +5 Microsoft.OData.Core.JsonLight.ODataJsonLightEntryAndFeedDeserializer.ReadFeedContentStart() +56 Microsoft.OData.Core.JsonLight.ODataJsonLightReader.ReadFeedStart(ODataFeed 提要,SelectedPropertiesNode selectedProperties)+24 Microsoft.OData.Core.JsonLight.ODataJsonLightReader.ReadAtStartImplementationSynchronously(DuplicatePropertyNamesChecker duplicatePropertyNamesChecker)+175 Microsoft.OData.Core.JsonLight.ODataJsonLightReader.ReadAtStartImplementation() +69 Microsoft.OData.Core.ODataReaderCore.ReadImplementation() +42 Microsoft.OData.Core.ODataReaderCore.ReadSynchronously() +5 Microsoft.OData.Core.ODataReaderCore.InterceptException(Func`1 动作)+96 Microsoft.OData.Core.ODataReaderCore.Read() +68 Microsoft.OData.Client.Materialization.ODataReaderWrapper.Read() +18 Microsoft.OData.Client.Materialization.FeedAndEntryMaterializerAdapter.TryRead() +30

          [DataServiceClientException: Fehler beim Verarbeiten des Antwortdatenstroms。 Esist ein Fehler mit der folgenden Nachricht auf dem Server aufgetreten: 你调用的对象是空的。] Microsoft.OData.Client.Materialization.FeedAndEntryMaterializerAdapter.TryRead() +97 Microsoft.OData.Client.Materialization.FeedAndEntryMaterializerAdapter.TryStartReadFeedOrEntry() +13 Microsoft.OData.Client.Materialization.FeedAndEntryMaterializerAdapter.TryReadFeedOrEntry(Boolean lazy, ODataFeed& feed, MaterializerEntry& entry) +20 Microsoft.OData.Client.Materialization.FeedAndEntryMaterializerAdapter.Read() +138 Microsoft.OData.Client.Materialization.ODataReaderEntityMaterializer.ReadNextFeedOrEntry() +10 Microsoft.OData.Client.Materialization.ODataEntityMaterializer.ReadImplementation() +51 Microsoft.OData.Client.MaterializeAtom.MoveNextInternal() +348 Microsoft.OData.Client.MaterializeAtom.MoveNext() +68 System.Linq.d__11.MoveNext() +176 System.Collections.Generic.List1..ctor(IEnumerable1 collection) +387 System.Linq.Enumerable.ToList(IEnumerable1 源) +58 Microsoft.OData.ProxyExtensions.PagedCollection2..ctor(DataServiceContextWrapper context, QueryOperationResponse1 qor) +53 Microsoft.OData.ProxyExtensions.c__DisplayClass382.<ExecuteAsync>b__36(IAsyncResult r) +167 System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) +86 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58 Microsoft.OData.ProxyExtensions.<ExecuteAsync>d__3a2.MoveNext() +686 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)+99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)+58 System.Runtime.CompilerServices.TaskAwaiter1.GetResult() +28 O365_WebApp_MultiTenant.Controllers.<Index>d__0.MoveNext() in D:\Projekte\Office 365\O365-WebApp-MultiTenant-master\O365-WebApp-MultiTenant\O365-WebApp-MultiTenant\Controllers\ContactsController.cs:65 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58 System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) +97 System.Web.Mvc.Async.<>c__DisplayClass37.<BeginInvokeAsynchronousActionMethod>b__36(IAsyncResult asyncResult) +17 System.Web.Mvc.Async.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +50 System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225 System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26 System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100 System.Web.Mvc.Async.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +29 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36 System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +22 System.Web.Mvc.Async.WrappedAsyncResultBase1.End() +49 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +29 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult 结果) +9 System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +129

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-10-26
            • 1970-01-01
            • 1970-01-01
            • 2020-05-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多