我尝试为 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'}
有人可以帮忙吗
答案 0 :(得分:1)
您的代码需要对 validationToken
查询参数进行 Url 解码并将其返回给 Graph。
从 documentation 开始,您的响应必须在 10 秒内发生并具有以下属性:
<块引用>HTTP 200 OK
。text/plain
的内容类型。validationToken
查询参数中发送的相同字符串。重要提示:如果客户端返回一个编码的验证令牌,验证将失败。
答案 1 :(得分:0)
我自己找到了遮阳篷。这里的功能有效:
@app.post("/")
def read_call_record(validationToken):
return Response(content=validationToken, media_type='text/plain')