web-dev-qa-db-fra.com

Accès refusé en raison d'une clé d'abonnement non valide (API Face)

Je ne parviens pas à utiliser Microsoft Face API. Voici ma demande d'échantillon:

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\"}"

J'utilise l'identifiant d'abonnement de mon compte de services cognitifs et j'ai la réponse ci-dessous:

{
  "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."
  }
}

Je ne sais pas si j'ai raté quelque chose là-bas. Quelqu'un peut m'aider à ce sujet? Très apprécié.

11
Ahmad Farhan

Il semble que vous ayez entré votre ID d'abonnement Azure à la place? Dans le portail Azure, vous pouvez trouver la clé API sous "Clés", comme indiqué ci-dessous:

 Azure Portal screenshot

Ce sera un nombre hexadécimal à 32 chiffres, sans trait d'union.

6
cthrash

J'ai rencontré le même problème. J'ai lu la documentation de l'API et cela indique ce qui suit. 

Vous devez utiliser la même région dans votre appel d'API REST que celle utilisée pour obtenir vos clés d'abonnement.

Vous devez d’abord trouver l’emplacement de votre abonnement. Pour trouver l'emplacement de votre région d'abonnement, vous devez aller à Cognitive Services -> Propriétés sous le libellé Emplacement, vous trouverez votre région d'abonnement . Voir ci-dessous. .  enter image description here

Deuxièmement, vous devez trouver le bon terminal sur lequel appeler. Par exemple, si je souhaite appeler l’API de Computer Vision, Mon emplacement est situé à l’est des États-Unis, je vais utiliser la clé 1 ou 2, puis le point de terminaison suivant East US - https://eastus.api.cognitive.Microsoft.com/face/v1.0/detect

Vous pourrez maintenant avoir accès à l'API.

8
CesarB

J'avais rencontré le même problème, il semble qu'il y ait un problème avec les clés générées récemment. Pour résoudre ce problème, vous pouvez également ajouter votre point de terminaison lorsque vous créez l'objet pour IFaceServiceClient. Vous pouvez voir le code ci-dessous.

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

 enter image description here

7
Sibeesh Venu

Endpoint https://westeurope.api.cognitive.Microsoft.com/face/v1.0

Endpoint et la clé d'abonnement doivent être cohérents.

regardez Microsoft Vue d'ensemble pour cette information!

0
Samet öztoprak

CesarB est correct. Vous devez d'abord créer une ressource de service cognitif dans Azure, puis en obtenir la clé d'abonnement. la région n’est pas toujours "westus", cela dépend vraiment de la région que vous sélectionnez lors de la création de la ressource. Vous pouvez également le vérifier sur le noeud final de la vue d'ensemble de la ressource

0
Yunpeng Zhang