Funktion ausführen

Hier wird über die Entwicklung von Skills diskutiert.
Antworten
Benutzeravatar

Themenstarter
BauerHenne
Beiträge: 2
Registriert: Di 21. Aug 2018, 09:01

Di 21. Aug 2018, 09:26

Hallo zusammen,
ich habe ein kleines Problem, und hoffe das mir der ein oder andere einen kleinen Denkanstoß geben kann.
Zum Problem:
Ich versuche aus meinem Skill heraus eine SMS zu versenden.
Dafür habe ich den dazu benötigten Code in eine Funktion geschrieben, welche ich aus dem 'sendenIntent' heraus aufrufe.
Dies klappt auch ganz gut, bzw. wird die SMS versendet, jedoch wird nach dem versenden der Fehler:
"Bei der Antwort des angeforderten Skill ist ein Problem aufgetreten"
ausgegeben und der Skill schmiert ab.

Um dies zu umgehen habe ich versucht aus der Funktion nach dem versenden der sms mit 'this.emit('HauptmenueIntent') wieder zurück ins Hauptmenü zu gelangen, welches auch funktioniert, aber dann wird der Code für das Versenden der SMS ignoriert.

Hat jemand ne Idee, wie ich den Code ausführen kann und im Anschluss entweder zurück ins Hauptmenü oder aber mit dem Hinweis das die sms versendet wurde den Skill zu beenden?
Danke
0 x
Benutzeravatar

Themenstarter
BauerHenne
Beiträge: 2
Registriert: Di 21. Aug 2018, 09:01

Sa 25. Aug 2018, 09:50

Bitte entschuldigt den Doppelpost.
Damit man mein Problem vllt. Ein bissl besser versteht füge ich euch nun mal den Code ein.
Ich habe mir nun gedacht, ich verschicke die SMS beim bzw. währen des Beenden Intent.
Es soll erst die SMS verschickt werden und anschließend das speechout „bis zum nächsten mal“.
Problem ist aber wie schon im ersten Post beschrieben, wird die sms nicht versendet(scheinbar wird der code übersprungen) wenn ich den speechout nicht auskommentiere.
Ist er auskommentiert, wie im untenstehenden Code zusehen wird die sms versendet aber es wird der Fehler "Bei der Antwort des angeforderten Skill ist ein Problem aufgetreten" ausgegeben…
Einer ne Idee?

Code:

Code: Alles auswählen

'Quit': function() {
        request.post({
			    url: 'https://gatewayapi.com/rest/mtsms',
			    oauth: {
				    consumer_key: 'key',
				    consumer_secret: 'secret',
			    },
		    json: true,
	    	body: {
			    sender: 'ExampleSMS',
			    message: 'Hello World',
			    recipients: [{msisdn: 49152123456}],
		    }
		    });
            //this.response.speak("Bis zum nächsten mal!");
            //this.emit(':responseReady');
    },

0 x
Benutzeravatar

amartin
Beiträge: 117
Registriert: Sa 4. Feb 2017, 19:12
Vorhandene Echos: 1
Vorhandene Echo Dots: 1

Fr 31. Aug 2018, 23:32

Damit sollte es funktionieren, request arbeitet asynchron, du musst das Callback "function(error) {" abwarten und dann die Response an Alexa zurück senden. Eventuell musst Du das Timeout deiner Lambda Funktion erhöhen, je nachdem wie lange der Post Request dauert.

Code: Alles auswählen

'Quit': function() {
  request.post({
    url: 'https://gatewayapi.com/rest/mtsms',
    oauth: {
      consumer_key: 'key',
      consumer_secret: 'secret',
    },
    json: true,
    body: {
      sender: 'ExampleSMS',
      message: 'Hello World',
      recipients: [{msisdn: 49152123456}],
    }
  }, function(error) {
    if (error) {
      console.error(error);
    }

    this.response.speak("Bis zum nächsten mal!");
    this.emit(':responseReady');
  }.bind(this));
},
0 x
Antworten

Zurück zu „Fähigkeiten (Skills) entwickeln“

  • Information