由于订阅密钥无效(人脸 API),访问被拒绝

Posted

技术标签:

【中文标题】由于订阅密钥无效(人脸 API),访问被拒绝【英文标题】:Access denied due to invalid subscription key (Face API) 【发布时间】:2017-06-26 16:35:36 【问题描述】:

我在使用 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."
  

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

【问题讨论】:

网址:azure.microsoft.com/nl-nl/try/cognitive-services/my-apis 您可能需要检查此项以确保您传递正确的密钥 - Where to find my Ocp-Apim-Subscription-Key in Windows azure 【参考方案1】:

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

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

首先,您必须找到订阅的位置。 为了找到您订阅区域的位置,您必须前往标签Location下的Cognitive Services -> Properties,您将找到您的订阅区域。 见下文。

其次,您必须找到正确的端点来进行调用。 例如,如果我想调用计算机视觉 API, 我的位置是美国东部,我将使用密钥 1 或 2,然后我将使用以下端点 美国东部 - https://eastus.api.cognitive.microsoft.com/face/v1.0/detect

您现在可以访问 API。

【讨论】:

伟大的兄弟你救了我的命:D thnks 谢谢你这是最糟糕的错误【参考方案2】:

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

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

【讨论】:

嗨@cthrash,你是对的。以前我也尝试过这两个键,但它返回错误。现在我再次尝试并且它正在工作。之前一定是有什么错误。感谢您指出正确的方向!【参考方案3】:

我也遇到过同样的问题,好像新生成的密钥有问题。要解决此问题,您实际上也可以在为IFaceServiceClient 创建对象时添加端点。你可以看下面的代码。

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

【讨论】:

是的 - 我必须添加端点。 IFaceServiceClient faceServiceClient = new FaceServiceClient(ai.key1, "australiaeast.api.cognitive.microsoft.com/face/v1.0")【参考方案4】:

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

【讨论】:

【参考方案5】:

我遇到了类似的问题。我认为它可能对某些人有帮助,所以我将其发布在这里。 (顺便说一句,Azure 支持将我指向此帖子)

我试图运行 Azure ImageSearch 的示例文件。我指的是这些页面:

https://docs.microsoft.com/en-us/azure/cognitive-services/bing-image-search/quickstarts/csharp https://docs.microsoft.com/en-us/azure/cognitive-services/bing-image-search/quickstarts/client-libraries?tabs=visualstudio&pivots=programming-language-csharp https://github.com/Azure-Samples/cognitive-services-dotnet-sdk-samples/blob/master/BingSearchv7/BingImageSearch/quickstart/bing-image-search-quickstart-csharp.cs

在向必应搜索资源发送请求时,我收到了 404 Not Found 错误和 401 未授权错误的混合,使用 Microsoft.Azure.CognitiveServices.Search.ImageSearch。我认为我的凭据或端点一定有问题。

经过几个小时的努力,阅读帖子并与 Azure 支持成员交谈,我终于找到了问题:

    Azure Keys & Endpoints 网页上分配给我的基本 Uri 端点不完整。 (https://api.bing.microsoft.com/) 示例教程页面上的基本 Uri 端点已过时,原因是 2020.10.30 在认知服务到 Bing 搜索服务之间进行了转换。 (https://api.cognitive.microsoft.com/bing/v7.0/images/search)

截至 2021.09.22,Bing 图像搜索的正确全局基础 Uri 端点是: https://api.bing.microsoft.com/v7.0/images/search

希望这对任何人都有帮助并为人类节省一些时间。

【讨论】:

【参考方案6】:

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

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

查看 Microsoft Overview 了解此信息!

【讨论】:

以上是关于由于订阅密钥无效(人脸 API),访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

由于无效原因,我的应用被 Instagram Basic Display API 审核拒绝

阿里云服务器win10 访问服务器图片资源提示 401 - 未授权: 由于凭据无效,访问被拒绝。

IIS 下载文件 报错“401 - 未授权: 由于凭据无效,访问被拒绝。”

401 - 未授权: 由于凭据无效,访问被拒绝。 您无权使用所提供的凭据查看此目录或页面。

存储库访问被拒绝。通过部署密钥访问是只读的

由于缺少 NSCalendarsUsageDescription,iTunes Connect 上传被拒绝,二进制文件无效