python - Microsoft Face API 验证(面对面)是否下来?总是说错误的请求和文档控制台显示错误
问题描述
这是我一直在尝试的:
subscription_key = "***"
assert subscription_key
face_api_url = 'https://southeastasia.api.cognitive.microsoft.com/face/v1.0/verify'
headers = {'Ocp-Apim-Subscription-Key': subscription_key,'Content-Type':'application/json'}
params = {
"faceId1": "a1cadf80-d780-4b6a-8cef-717548a07e51",
"faceId2": "05113848-2c22-4116-8a30-5cde938eec61"
}
import requests
from pprint import pprint
response = requests.post(face_api_url, headers=headers, params=params)
faces = response.json()
pprint(faces)
我总是得到这个输出
{'error': {'code': 'BadArgument', 'message': 'Request body is invalid.'}}
此外,我已经尝试过 API 测试控制台,但它总是导致面对面的错误(没有尝试过其他人) 这是文档的链接,您可以在其中获取 API 测试控制台的链接。 https://southeastasia.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523a
解决方案
基于验证 API,我们可以知道人脸应该在身体部位而不是参数中
subscription_key = "xxxx"
assert subscription_key
import json
face_api_url = 'https://westus.api.cognitive.microsoft.com/face/v1.0/verify'
headers = {'Ocp-Apim-Subscription-Key': subscription_key,'Content-Type':'application/json'}
faces = {
"faceId1": "xxxxxxxx",
"faceId2": "xxxxxx"
}
body = json.dumps(faces)
import requests
from pprint import pprint
response = requests.post(face_api_url, headers=headers,data=body)
result = response.json()
pprint(result)
测试结果:
我们也可以使用 python SDK 轻松做到这一点
import cognitive_face as CF
KEY = 'xxxxxx' # Replace with a valid subscription key (keeping the quotes in place).
CF.Key.set(KEY)
BASE_URL = 'https://{location}.api.cognitive.microsoft.com/face/v1.0' # Replace with your regional Base URL
CF.BaseUrl.set(BASE_URL)
result = CF.face.verify("faceId1","faceId2")
print(result)
推荐阅读
- python - Python转义符号中的串行读取
- python - Python groupby itertools 方法
- angular - 确保最后一个 http 帖子在 Angular 中最后到达后端
- sql - 仅从新数据库中获取新数据并插入旧数据库
- firebase - React Native (Expo) Firebase Phone Auth with invisible reCaptcha
- reactjs - Preact + Jest:“moduleNameMapper”和“moduleDirectories”配置未注册
- c - Xcode:未定义符号:_omp_get_max_threads
- angular - 没有为 window.open 实现玩笑
- python - sqlite3 在查询时正在更改列的值
- amazon-web-services - 如何将资源输出(EC2 实例 ID)作为环境变量传递给 Terraform 中的 Lambda 函数?