私はビデオをEmotion API for videoに掲示していますが、私は応答を得ることができませんでした。ビデオ(JavascriptまたはRuby)のエモーションAPIを使用
Microsoft online consoleで動作させることができましたが、(1)JavaScript Ajaxまたは(2)Rubyサーバー側コードを使用してRailsアプリケーションで実装しようとすると、さまざまなエラー。
ここに私のコードです。最初はAjaxの方法で試しましたが、APIにCORSが有効になっていないという疑いがありました。だから私はRubyを試しました。成功しませんでした。
ルビーの試み:
function CallAPI(apiUrl, apiKey){
console.log("API called");
$(".loading").css("display", "inline-block");
$.ajax({
url: apiUrl,
beforeSend: function (xhrObj) {
xhrObj.setRequestHeader("Content-Type", "application/octet-stream");
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key", apiKey);
},
type: "POST",
data: '{"url": "http://localhost:5000/mark_zuck.mov"}',
processData: false,
success: function(response){
console.log("API success");
ProcessResult(response);
$(".loading").css("display", "none");
console.log(response);
},
error: function(error){
console.log("API failed");
$("#response").text(error.getAllResponseHeaders());
$(".loading").css("display", "none");
console.log(error);
}
})
はい、私は私のキーを再生成しました:
def index
uri = URI('https://api.projectoxford.ai/emotion/v1.0/recognizeinvideo')
uri.query = URI.encode_www_form({
})
data = File.read("./public/mark_zuck.mov")
request = Net::HTTP::Post.new(uri.request_uri)
# Request headers
request['Ocp-Apim-Subscription-Key'] = 'e0ae8aad4c7f4e33b51d776730cff5a9'
# Request body
request.body = data
request.content_type = "video/mov"
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.request(request)
end
puts response.body
end
ここに私のAjaxの試みです。これは私の要点を説明するためのものです。
"*一貫してさまざまなエラーが発生*" - "エラー"とは何を意味しますか? – Uzbekjon
私のajax試行で400エラーが発生し、 "Access-Control-Allow-Origin not set"エラーが発生しました。私のルビー試行は '{"エラー ":{" code ":" BadArgument "、" message ":"無効なメディアタイプ "}を返します。 –
APIクライアントを正しく実装していますか? CORSはしばしばウェブサイトのコードが他の場所で働くのを防ぎます。動作中のAPIがない場合は、セレンを代わりに使用できます –