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

时间:2021-07-07 14:48:23

标签: python microsoft-graph-api fastapi

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

<块引用>

订阅验证请求失败。响应必须与validationToken 查询参数完全匹配。

验证请求如下所示:

<块引用>

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': '验证:测试订阅请求 ID 的客户端应用程序可达性:c69b04df-f3d3-411c-8ceb-7f1ad8b7a927'}

有人可以帮忙吗

2 个答案:

答案 0 :(得分:1)

您的代码需要对 validationToken 查询参数进行 Url 解码并将其返回给 Graph。

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

<块引用>
  • 状态代码 HTTP 200 OK
  • text/plain 的内容类型。
  • 包含URL 解码 验证令牌的正文。只需反映在 validationToken 查询参数中发送的相同字符串。

重要提示:如果客户端返回一个编码的验证令牌,验证将失败。

答案 1 :(得分:0)

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

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