2017-12-10 4 views
1

Ich verwende eine Blaupause von Amazon, um eine Alexa-Feed-Fähigkeit zu entwickeln. In diesem Entwurf werden RSS-Feeds von einer URL aus aufgerufen und in das JSON-Format umgewandelt und auf Amazon S3 gespeichert.Alexa Skill FeedHelper.js - wie kann ich die Gehäuse-URL bekommen?

Diese Datei ist verantwortlich, dass die Aktion zu tun (und es funktioniert gut für die Standardelemente)

https://github.com/alexa/skill-sample-nodejs-feed/blob/master/lambda/custom/feedHelper.js

Ich brauche jetzt auch das Gehäuse URL, weil ich einen Podcast spielen möchten. Ich dachte, es durch Zugabe von folgenden in die feedHelper.js in Linie 63 arbeiten:

     if (item['enclosure']) { 
         feedItem['enclosureUrl'] = item['enclosure'].attributes['url']; 
        } 

Aber die JSON, die mit Hilfe dieser Datei auf S3 erzeugt wird, hat noch kein Gehäuse Element drin. Habe ich es überhaupt richtig genannt?

Ich versuchte auch schon:

     if (item['enclosure']) { 
         feedItem['enclosureUrl'] = item['enclosure'].url; 
        } 

und

     if (item['enclosure']) { 
         feedItem['enclosureUrl'] = item['enclosure']['url']; 
        } 

Das andere Problem ist, dass die Audioverbindung mit https verbunden: // und Amazon HTTP nicht akzeptieren ... Aber wenn ich diese Adresse manuell in der Browserleiste mit https vorstelle, funktioniert der Download. Also kann ich hoffentlich das HTTP vom Tag des Gehäuses in https ändern, wie hier beschrieben?

http://code.dblock.org/2017/02/09/alexa-skill-to-play-your-podcast.html

So oben zusammenfassen: Ich brauche dieses Element aus einem RSS-Feed

 <enclosure type="audio/mpeg" url="http://feeds.soundcloud.com/stream/file.mp3" length="7087881"/> 

im JSON geschrieben werden, die mit dem feedHelper.js

Derzeit erstellt wird, Ich habe trotz des obigen Codes kein Enclosure-Element im JSON generiert.

Hat jemand eine Idee?

Vielen Dank!

Antwort

0

Ein Freund hat mir geholfen, herauszufinden, dass die Normalisierungsoption des Feed-Parsers das Tag des Gehäuses vor mir verbirgt. Also habe ich mich normalisiert. Aber dann muss man die Dinge etwas anders nennen. Wie rss: Titel statt Titel, etc. etc. Das Problem für mich gelöst!