由于订阅密钥无效而拒绝访问(Face API)

时间:2017-02-08 21:08:42

标签: face-detection microsoft-cognitive face-api

我在使用Microsoft Face API时遇到问题。以下是我的示例请求:

curl -v -X POST "https://westus.api.cognitive.microsoft.com/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=false&returnFaceAttributes=age,gender" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: 1xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxd" --data-ascii "{\"url\":\"http://www.mrbeantvseries.co.uk/bean3.jpg\"}"

我使用来自我的认知服务帐户的订阅ID,我收到了以下回复:

{
  "error": {
    "code": "Unspecified",
    "message": "Access denied due to invalid subscription key. Make sure you are subscribed to an API you are trying to call and provide the right key."
  }
}

不确定我是否错过了那里的任何东西。有人可以帮我吗?非常感谢。

5 个答案:

答案 0 :(得分:9)

我遇到了同样的问题。我阅读了API文档,并说明了以下内容。

您必须在REST API调用中使用与获取订阅密钥相同的区域。

首先,您必须找到订阅的位置。 要查找订阅区域的位置,您必须转到认知服务 - >标签位置下的属性,您将找到您的订阅区域。 见下文。 enter image description here

其次,您必须找到正确的端点才能拨打电话。 例如,如果我想调用Computer Vision API, 我的位置是美国东部,我将使用键1或2,然后我将使用以下端点 美国东部 - https://eastus.api.cognitive.microsoft.com/face/v1.0/detect

您现在可以访问API。

答案 1 :(得分:7)

我遇到了同样的问题,似乎新生成的密钥存在一些问题。要解决此问题,您还可以在为IFaceServiceClient创建对象时添加端点。你可以看到下面的代码。

private readonly IFaceServiceClient faceServiceClient = new FaceServiceClient("your key", "Your endpoint");

enter image description here

答案 2 :(得分:6)

您似乎已输入Azure订阅ID了吗? 在Azure门户中,您可以在' Keys'下找到API密钥,如下所示:

Azure Portal screenshot

它是一个32位十六进制数字,没有连字符。

答案 3 :(得分:0)

端点 https://westeurope.api.cognitive.microsoft.com/face/v1.0

端点和订阅密钥必须一致。

查看Microsoft 概述以获得此信息!

答案 4 :(得分:0)

CesarB是正确的。您必须首先在Azure中创建认知服务资源,然后从中获取订阅密钥。 该区域并不总是“ westus”,它实际上取决于创建资源时选择的区域。您也可以在资源概述的端点上对其进行检查