当我尝试订阅推送通知并将API Gateway端点用作通知URL时
curl -H 'Content-Type: application/json' -H 'Authorization: Bearer TOKEN' \
-d '{
"changeType": "Created",
"expirationDateTime": "2020-09-04T14:48:27.391Z",
"notificationUrl": "AWS_API_GATEWAY/dev/webhooks",
"resource": "/me/mailfolders('\''inbox'\'')/messages"}' \
-X POST "https://graph.microsoft.com/v1.0/subscriptions"
我收到请求超时错误()
{
"error": {
"code": "InvalidRequest",
"message": "Subscription validation request timed out.",
"innerError": {
"date": "2020-09-02T14:51:26",
"request-id": "2d4c31ae-af4c-40cb-a40e-d7ec4281ddfc"
}
}
}
几周前,相同的请求没有任何问题。现在,〜5中只有1个成功。
但是,当我执行相同的请求但将我的ngrok用作通知网址(这是非常相同的AwsApiGateway ngrok -> ruby proxy stuff -> aws api gateway
的简单反向代理)时,它会完美运行
curl -H 'Content-Type: application/json' -H 'Authorization: Bearer TOKEN' \
-d '{
"changeType": "Created",
"expirationDateTime": "2020-09-04T14:48:27.391Z",
"notificationUrl": "NGROK_PROXY/dev/webhooks",
"resource": "/me/mailfolders('\''inbox'\'')/messages"}' \
-X POST "https://graph.microsoft.com/v1.0/subscriptions"
看起来有些Outlook对我的ApiGateway端点设置了一些限制。我在文档中还没有找到关于这种行为的任何解释。
任何帮助将不胜感激
答案 0 :(得分:1)
我们的图形订阅端点(由NodeJS Lambda支持的AWS API网关)遇到了这个确切问题,并且正在努力寻找确切原因。
我们尝试了多种方法来调试正在发生的事情,包括:
我们得出的结论与您相似-Microsoft Graph API正在(有意或无意)阻止对AWS API Gateway端点的订阅请求。
我们的解决方案是在API网关端点的前面添加一个Route53托管域。自添加此功能以来,由于“超时”,我们的失败次数为零。