首页 > 解决方案 > “订阅验证请求失败。通知端点必须以 200 OK 响应验证请求”

问题描述

我完成了本教程https://docs.microsoft.com/en-us/graph/tutorials/azure-functions?tutorial-step=5一切正常,直到我在我的 Azure 应用程序中发布了我的 azure Functions。当我尝试进行订阅时,我收到此错误“订阅验证请求失败。通知端点必须以 200 OK 响应验证请求”。当我使用 ngrok 进行测试时,我可以毫无问题地创建订阅,但是当我为我的 Azure 函数 Url 替换 NgrokURL 值时,不会。这是创建订阅的正确方法吗?我也尝试在 Graph Explorer 中创建订阅,但我仍然收到此消息。

标签: asp.net-web-apiazure-functionsmicrosoft-graph-apimicrosoft-graph-mail

解决方案


在下面的代码中, 内容类型必须是 text/plain。
body 必须包含验证令牌。
1. CodeSamples asp .net mvc示例——具体看NotificationController.cs文件中的方法

[HttpPost]  
public async Task<ActionResult> Listen()  
{
// Validate the new subscription by sending the token back to Microsoft Graph.
// This response is required for each subscription.
if  (Request.QueryString["validationToken"]  !=  null)
{
var token =  Request.QueryString["validationToken"];
return  Content(token,  "plain/text");
}
  1. notificationUrl必须能够响应验证请求。此外,您需要确保验证令牌以纯文本/文本形式返回。有关详细信息,请参阅通知端点验证文档

  2. 尝试隔离代码并使用 Postman/Graph Explorer 调用相同的 API 并观察结果。


推荐阅读