使用Azure Webhook域找不到Outlook通知订阅

时间:2018-01-03 09:47:31

标签: azure office365 azure-active-directory microsoft-graph outlook-restapi

我正在制作收件箱邮件的推送通知,以便发送到我的azure webhook。

我一直关注documentation作为参考。到目前为止,我已经能够使用Azure应用程序注册创建和注册我的应用程序。我相应地得到了​​client_id和client_secret。

以下共享是我首先获取访问代码的邮递员请求,然后是来自Oauth授权端点的access_token和refresh_token -

获取访问代码 -

Endpoint - https://login.microsoftonline.com/{tenant}/oauth2/authorize

Authorization Type – Oauth 2.0

Headers – 
    Content Type:   application/x-www-form-urlencoded

Body – 
    response_type:  code
    client_id:      myClientId
    redirect_uri:   https://app.getpostman.com/oauth2/callback
    response_mode:  query
    scope:          https://outlook.office.com/mail.read

获取access_token -

Endpoint – 
https://login.microsoftonline.com/{tenant}/oauth2/token

Authorization Type – Oauth 2.0

Headers – 
    Content Type:   application/x-www-form-urlencoded

Body – 
    code:           **********access_code***************
    client_id:      myClientId
    scope:          https://outlook.office.com/mail.read
    grant_type:     authorization_code
    client_secret:  *********client_secret*********
    redirect_uri:   https://app.getpostman.com/oauth2/callback  
    resource:       myClientId

现在,正如文档中所提到的,我发布了以下创建订阅的请求(使用Fiddler) -

Endpoint – 
https://outlook.office.com/api/v2.0/me/subscriptions

Headers – 
    Authorization:      Bearer access_token_got_in_the_response_above
    Content Type:       application/json

Body – 
    @odata.type:        #Microsoft.OutlookServices.PushSubscription
    Resource:           https://outlook.office.com/api/v2.0/me/mailfolders('inbox')/messages
    NotificationURL:    https://myAzureFunctionApp.azurewebsites.net/api/HttpNotificationHandler
    ChangeType:         authorization_code

问题是我得到的回复是404 Not Found。更具体地说,X-CasErrorCode: DomainNotFound。我已仔细检查以确保任何规格中都没有拼写错误。

为了提供更多信息,我之前尝试了这一点,并成功创建了我的个人hotmail帐户的订阅。我坚持使用的用户已作为访客用户添加到Azure Active Directory中,该用户已在我的应用已注册的同一租户下。

更新

以下是一些可能有用的问题 -

  • 电子邮件地址为email1@contoso.com,租户为ABCcontoso.onmicrosoft.com。会有什么不同吗?

  • 在Azure Active Directory应用程序注册部分中,未使用此应用程序将用户添加到用户组,显示的唯一用户是已注册该应用程序的管理员。这需要吗?

  • 该应用已在Microsoft App Registration Portal上注册。但它反映在租户下的Azure Active Directory中。那么,击中OAuth2 v1.0端点是否正确?

  • 为具有Office 365订阅的工作/组织帐户创建通知订阅的端点应该是什么?当前端点https://outlook.office.com/api/v2.0/me/subscriptions使用v2.0,但提供的令牌是v1.0端点(如果我理解正确的话)。

感谢任何帮助。

0 个答案:

没有答案