0

このエラーを解決しようとしていますが、何が間違っているのかわかりません。

で使用Microsoft Cognitive Services Face APIしていpythonます。これが私のコードです:

import requests
import json
import http.client, urllib, base64, json

body = {"URL": "http://www.scientificamerican.com/sciam/cache/file/35391452-5457-431A-A75B859471FAB0B3.jsdfpg" }

headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "xxx"
}

try:

    r=requests.post('https://api.projectoxford.ai/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=false&returnFaceAttributes=age,gender',json.dumps(body) , headers)
    print(r.content)
except Exception as e:
    print(format(e))

スクリプトを実行すると、次のようになります。

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

問題は、コンソールにまったく同じキーを配置すると、すべてが正常に機能することです。だから私はそれが鍵ではないと確信しています。

エラーは私のコードにあるはずですが、見つかりません。

正しい方向へのヒントをいただければ幸いです、ありがとう

4

1 に答える 1

3

エラーは、request.post呼び出しの準拠方法にあります。この他の投稿で述べたように、この関数へのパラメーターは位置指定であるため、ヘッダーはヘッダーとして渡されないため、キーは認識されません。各パラメーターが何であるかを指定すると、このエラーを回避できます。あれは:

r=requests.post('https://api.projectoxford.ai/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=false&returnFaceAttributes=age,gender',params=None, data = json.dumps(body), headers = headers)   

また、画像への URL が有効な JPEG ファイルを指していません (拡張子が文字化けしており、おそらく入力ミスです)。

于 2016-05-02T03:50:33.737 に答える