REST API 経由で画像を送信して認識できるようにするカスタム AutoML モデルを .NET Web アプリに実装する際に問題が発生しています。エラーが発生し続けます。
リモート サーバーがエラーを返しました: (403) 許可されていません。
私は画像を持っていて、それを呼び出されたバイトの文字列に変換しimageBytesString
、次のような jsonRequest オブジェクトを作成しました:
string jsonRequest = "{\"payload\":{\"image\":{\"imageBytes\":\"" + imageBytesString + "\"},}}";`
次に、次のような POST リクエストを実行しています。
WebRequest request = WebRequest.Create(@"https://automl.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:predict");
request.Method = "POST";
request.ContentType = "application/json";
request.Headers.Add("Authorization", "Bearer GCLOUD_ACCESS_TOKEN");
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(jsonRequest);
}
次に、ヒットrequest.GetResponse();
すると、他の情報なしで上記のエラーが表示されます。
参考までに、カスタム AutoML モデルの PREDICT ページの下部から抜粋したスニペットを以下に示します。
リクエスト.json:
{
"payload": {
"image": {
"imageBytes": "YOUR_IMAGE_BYTE"
},
}
}
リクエストを実行します。
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
https://automl.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:predict -d @request.json
ありがとう