为 Microsoft Graph API 创建订阅:订阅验证请求失败

Creating Subscription for Microsoft Graph API: Subscription validation request failed

我尝试为 Microsoft Graph 创建订阅 API。但是,我收到错误

Subscription validation request failed. Response must exactly match validationToken query parameter.

验证请求如下所示:

POST /?validationToken=Validation%3a+Testing+client+application+reachability+for+subscription+Request-Id%3a+c69b04df-f3d3-411c-8ceb-7f1ad8b7a927 HTTP/1.1

使用 FastApi,发送验证请求的 API 看起来像

from fastapi import FastAPI

app = FastAPI()

@app.post("/")
def read_call_record(validationToken):
    data = {"validationToken": validationToken}
    return data

返回的数据变量如下所示:

{'validationToken': 'Validation: Testing client application reachability for subscription Request-Id: c69b04df-f3d3-411c-8ceb-7f1ad8b7a927'}

有人可以帮忙

您的代码需要 Url 解码 validationToken 查询参数并将其 return 返回到 Graph。

来自 documentation,您的响应必须在 10 秒内发生并具有以下属性:

  • A status code of HTTP 200 OK.
  • A content type of text/plain.
  • A body that includes the URL decoded validation token. Simply reflect back the same string that was sent in the validationToken query parameter.

Important: If the client returns an encoded validation token, the validation will fail.

遮阳篷是我自己找的。这里的功能有效:

@app.post("/")
def read_call_record(validationToken):
    return Response(content=validationToken, media_type='text/plain')