2016-09-28 148 views
0

我的应用程序使用Outlook Push Notifications REST API获取一组用户的更新。Outlook推送通知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>, 
    } 

该代码总是能正常工作,但由于09月26日就停止为用户大多是工作的。 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注册后端aplication并使用令牌允许我做代表用户的请求。

我的令牌凭据正常工作。我对Graph API和Outlook API使用相同的标记而没有错误。我刷新了它,看看错误消失了,但它不起作用。无论如何,这个错误都是为了新鲜的令牌。

对于一些用户我没有错误,它总是工作。订阅创建正常,并像往常一样返回JSON中的订阅数据。

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

那么我该如何解决受影响用户的这个错误?

回答

0

我记住的第一件事是,你忘了更新日历订阅吗?这是最大的。那些活着的14天。在到期前的任何时间,您都可以续订订阅,之后您仍可以恢复订阅。

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

在这一点上,我得到你创建新的订阅时出错。你确定你的access_token仍然有效吗?