So arbeite ich an der Veröffentlichung eines Videos auf die Emotion API for video und ich konnte keine Antwort bekommen.Verwenden von Emotion API für Video (Javascript oder Ruby)
Ich konnte es auf der Microsoft online console arbeiten, aber wenn ich versuche, es in meiner Rails App mit (1) JavaScript Ajax oder (2) Ruby serverseitigen Code zu implementieren, bekomme ich konsequent verschiedene Fehler.
Hier ist mein Code. Zuerst habe ich versucht, Ajax so, aber ich hatte den Verdacht, dass die API nicht CORS aktiviert hat. Also habe ich Ruby versucht, ohne Erfolg.
Ruby-Versuch:
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
Hier ist mein Ajax Versuch:
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);
}
})
Ja, ich habe meinen Schlüssel regeneriert. Dies ist nur um meinen Standpunkt zu verdeutlichen.
"* Ich bekomme immer verschiedene Fehler *" - definieren, was meinst du mit "Fehler"? – Uzbekjon
Mein Ajax-Versuch ergab einen Fehler von 400 und auch einen Fehler "Access-Control-Allow-Origin not set". Mein Ruby-Versuch ergibt '{" Fehler ": {" code ":" BadArgument "," Nachricht ":" Ungültiger Medientyp. "}}' –
Sind Sie sicher, dass Sie einen API-Client richtig implementieren? CORS verhindert oft, dass der Code der Website anderswo funktioniert. Selenium könnte stattdessen verwendet werden, wenn es keine funktionierende API gibt –