首页 文章

Outlook推送通知REST API在订阅注册中失败

提问于
浏览
0

我的应用程序使用Outlook Push Notifications REST API来获取一组用户的更新 .

我用来进行注册的代码如下:

HTTP POST to: 
    https://outlook.office.com/api/v2.0/users/<user email>/subscriptions

POST data = {
        '@odata.type': '#Microsoft.OutlookServices.PushSubscription',
        'Resource': 'https://outlook.office.com/api/v2.0/me/messages',
        'NotificationURL': 'https://<my_valid_hostname>/api/subscriptions',
        'ChangeType': 'Created, Deleted',
        'ClientState': <user UUID>,
    }

这段代码总是运行良好,但自9月26日以来它停止了为大多数用户工作 . 注册Web通知的HTTP请求返回HTTP 403错误:

HTTP 403 Error: https://outlook.office.com/api/v2.0/users/<user email>/subscriptions
{
  "error": {
    "code": "ErrorAccessDenied",
    "message":"Access is denied. Check credentials and try again."
  }
}

此应用程序是在Azure AAD portal中注册的后端应用程序,并使用一个令牌,允许我代表用户执行请求 .

我的令牌凭据工作正常 . 我对Graph API和Outlook API使用相同的标记而没有错误 . 我刷新它以查看错误是否消失,但它不起作用 . 无论如何,错误来自新鲜令牌 .

For some users I get no error, it always work. The subscription is created fine and I get the subscription data in JSON returned, as usual.

这让我觉得它可能是微软方面的问题,但我无法检查这一点 .

那么如何为受影响的用户修复此错误?

1 回答

  • 0

    我想到的第一件事是您忘记续订日历订阅了吗?这就像最大的 . 14天他们还活着 . 在到期之前的任何时候,您都可以续订订阅,之后您仍然可以恢复订阅 .

    事实上现在我用我的应用程序测试了新的订阅,我只有7天到期日 .

    此时我得知您在创建新订阅时遇到错误..您确定您的access_token仍然有效吗?

相关问题