gpt4 book ai didi

Azure Microsoft Graph API - 订阅 - 验证请求失败

转载 作者:行者123 更新时间:2023-12-02 20:04:00 24 4
gpt4 key购买 nike

我尝试设置 Azure 用户数据更改通知 ( https://learn.microsoft.com/en-us/graph/webhooks )。

我从本地客户端向 Azure Graph API 发送请求,并且请求负载中有一个公开可用的服务器(带有 SSL)作为通知 URL。

Azure 现在向我的服务器发送一个帖子请求(如文档中所示 - 确切的帖子请求见下文),并且我尝试发送我收到的 token (如文档中所示)。但我总是收到以下错误消息“订阅验证请求失败。响应必须与validationToken查询参数完全匹配。”

来自 Azure 的发布请求:

路径:/?validationToken=Validation%3a+Testing+client+application+reachability+for+subscription+Request-Id%3a+3b3f9821-ce3f-23d9-879b-00a23f3
正文:为空

我尝试了路径的每个部分和编码(例如请求 ID 或整个路径),但我总是收到错误消息。那么,什么是正确的发回呢?

最佳答案

首先,您收到的验证 token 应被视为不透明值并按原样返回,并且错误订阅验证请求失败。响应必须完全匹配 validToken 查询参数 试图告诉您某些内容发生了变化。

由于验证 token 作为 URL 查询参数提供给您,请确保您在返回代码之前使用正确解码的值

以下是 Microsoft Docs 中的相关文档:Notification endpoint validation

POST https://{notificationUrl}?validationToken={opaqueTokenCreatedByMicrosoftGraph}

enter image description here

其他要求(来自同一引用):

  • 10秒内回复
  • 200(正常)状态代码。
  • 内容类型必须是文本/纯文本。
  • 正文必须包含验证 token 。

代码示例

ASP.NET MVC Sample - 具体看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");
}

Node.js code sample - 具体看listen.js

/* Default listen route */
listenRouter.post('/', (req, res, next) => {
let status;
let clientStatesValid;

// If there's a validationToken parameter in the query string,
// then this is the request that Office 365 sends to check
// that this is a valid endpoint.
// Just send the validationToken back.
if (req.query && req.query.validationToken) {
res.send(req.query.validationToken);
// Send a status of 'Ok'
status = 200;
}

关于Azure Microsoft Graph API - 订阅 - 验证请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55160398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com