Microsoft认知服务 - 计算机视觉:无效的订阅密钥

时间:2017-05-21 07:17:49

标签: azure computer-vision microsoft-cognitive

我尝试使用Microsoft认知服务中的Computer Vision API。但是,我的钥匙似乎不起作用。我使用该API的免费试用版创建了一个帐户,并从中获取了两个密钥。尝试使用ProjectOxford.Vision SDK的密钥始终会产生:

Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription.

我尝试了API console,但是我的Ocp-Apim-Subscription-Key字段中的密钥出现了同样的错误。我尝试了两个按键,但两个都没有工作。我甚至获得了免费版Face API并尝试了它的console,但遇到了与其密钥相同的问题。我甚至尝试过不同的数据中心,但它们似乎都返回了相同的错误。

这需要是钥匙的问题吗?这可能是我的C#代码的问题,因为控制台也无法正常工作。既然它在API控制台中失败了,我还能做什么来排除任何其他可能性呢?我不确定我还能做些什么来调试这个。我想重新生成我的密钥(我看到一个教程视频显示了获取API密钥的旧UI,他们曾经有过#34;重新生成"链接)但我不明白这样做的方式。

我刚刚创建了帐户并注册了API,因此我无法超过配额。我还需要做些什么来启用这些密钥或其他东西吗?

5 个答案:

答案 0 :(得分:2)

我设法绕过了“拒绝访问”的问题。通过执行以下操作:

  1. 我创建了一个免费的Azure帐户
  2. 我设置了认知服务Api的一个实例(这为我生成了一对新密钥)
  3. 使用新密钥,我必须使用以下链接: https://westus.api.cognitive.microsoft.com/vision/v1.0/ocr

    而不是

    https://westus.api.cognitive.microsoft.com/vision/v1.0/recognizeText

  4. (我从认知服务测试仪表板获得此链接)。

    查看测试仪表板上的请求模式,您应该能够告诉如何使用api。

答案 1 :(得分:2)

即使@Xuan Hu响应正确地说明了解决方案,我还是试着弄清楚如何改变终点。这是我的2美分:

  1. 转到portal.azure.com,在您订阅认知服务的仪表板中>一般信息>终点记下URL。你需要它。

  2. 在VisionAPI示例中查找VisionServiceClient实例化的代码:

    VisionServiceClient VisionServiceCliente = new VisionServiceClient(SubscriptionKey);

  3. 并更改包括您在Azure中找到的网址:

    VisionServiceClient VisionServiceCliente = new VisionServiceClient(SubscriptionKey, StringOfMyURLTakedFromPortal);
    

    这对我有用。

答案 2 :(得分:1)

如果您使用的是从azure.microsoft.com获得的免费试用密钥。您需要将API端点区域更改为westcentralus。之前的默认区域是westus,我认为这是无效密钥问题的原因。

答案 3 :(得分:1)

仅供参考,有一篇博客文章涵盖了所有401 Access Denied场景,包括关于免费API密钥和区域特定API端点的场景。将此添加到将来发现此SO帖子的人 - https://blogs.msdn.microsoft.com/kwill/2017/05/17/http-401-access-denied-when-calling-azure-cognitive-services-apis/


使用错误的区域端点

大多数Cognitive Services API都是特定于区域的,这意味着在创建API帐户期间,您可以选择要在其中创建帐户的区域。这些API具有特定于区域的端点,例如westus.api.cognitive.microsoft.com或eastus2.api.cognitive.microsoft.com以及在一个区域中创建的帐户的API密钥仅适用于该特定区域的端点。这意味着,如果您在美国西部创建API帐户,则无法调用eastus2.api.cognitive.microsoft.com API端点。

您可以在Azure管理门户中验证区域和端点。

enter image description here

试用API密钥

免费试用版API密钥有30天的到期日期,对区域和版本的限制相同。如果您使用的是试用密钥,则可以转到https://azure.microsoft.com/en-us/try/cognitive-services/my-apis/来管理您的API密钥(如果您尚未登录,则只需单击“创建”按钮之一,您就可以通过向导登录并查看您现有的API密钥),您还将看到到期日期和终点。 enter image description here

答案 4 :(得分:0)

如果要使用Postman来获取结果,要记住的一件事是使用GET并将密钥放在Header中。