0

试图创建订阅以获取用于文件创建/上传的msgraph一个驱动器通知的通道。 我打的网址 -为MSGraph的创建预订API获取400错误请求错误[错误代码 - ExtensionError]

https://graph.microsoft.com/v1.0/subscriptions 

与适当的标题和以下的身体 -

{ 
    "changeType": "updated", 
    "notificationUrl": "https://xxxxx.xxxxxxxxx.com/zzzz/qwertqwert", 
    "resource": "https://stackoverflow.com/users/{user-id}/drive/root", 
    "expirationDateTime": "2017-02-18T19:49:40.000Z", 
    "clientState": "justsomerandomstring" 

} 

我得到如下回应: 400错误的请求错误

{ 
    "error": { 
    "code": "ExtensionError", 
    "message": "Operation: Create; Exception: [Status Code: BadRequest; Reason: Bad Request]", 
    "innerError": { 
     "request-id": "2862896286-5415-4921-gbn5-8741288985", 
     "date": "2017-02-17T17:30:22" 
    } 
    } 
} 

我同样的要求30-32小时回来。获取订阅ID以及我的重定向servlet上的文件通知。 无法弄清楚发生了什么变化。找不到任何帮助文档

+0

现在这个问题消失了。我可以为之前被封锁的帐户创建新的频道和订阅。但我仍然想知道问题背后的原因 – crucifix94

+0

问题又回来了。这一次,我甚至还没有长期致电API来设置订阅频道。账户只是再次得到相同的错误 – crucifix94

+0

你并不孤单。我与创建订阅有同样的问题。它工作的很好,我没有改变任何东西,现在一周后得到400个不好的请求。 – JFlox

回答

0

在这里得到了同样的错误,我花了一段时间才发现有什么问题,所以我在这里与你分享。

这里的工作代码:

'resource' => 'me/messages/' . $draftEmail->getParentFolderId(), 

和我一起

'resource' => "me/mailFolders('Inbox')/messages?filter=id eq %27" . $draftEmail->getId() . '%27', 

,我发现我的答案在这个替换它:

$subscription = new Subscription([ 
    'resource'  => "me/mailFolders('Inbox')/messages?filter=id eq %27" . $draftEmail->getId() . '%27', 
    'notificationUrl' => 'https://my.domain.fr', 
    'changeType'  => 'updated', 
    'expirationDateTime' => date(DATE_ISO8601, strtotime('+48 hours')) 
]); 

这是错误的,我是行链接:https://msdn.microsoft.com/en-us/office/office365/api/notify-rest-operations#subscribe-to-changes-in-my-mail-calendar-contacts-or-tasks

但在我看来,“资源”参数应更多地记录在图形api文档中,并且错误消息返回必须指定为什么这是一个BadRequest。

相关问题