Ich habe versucht, eine einfache Chat-App basierend auf Twilios Beispiel (https://github.com/TwilioDevEd/ipm-quickstart-node) zu erstellen. Ich kann das schnell einrichten.Twilio Client-Fehler: Twilio IP-Messaging mit AWS Lambda/AWS API-Gateway
Ich möchte ein wenig ändern, dass
- , wenn ein Benutzer eine Nachricht über das Web-Interface sendet (
http://localhost:3000
), es Twilio des Webhook auslöst. - Dieser Webhook pingt einen AWS-API-Endpunkt, der einer AWS Lambda -Funktion zugeordnet ist.
- Diese AWS-Lambda-Funktion empfängt den Channel Sid, authentifiziert und antwortet einfach "what say you?"
Ich habe mein AWS Lambda und AWS API Gateway korrekt eingerichtet.
Hier ist eine Probe meines Lambda-Code:
'use strict';
var TWILIO = require('twilio');
var AccessToken = require('twilio').AccessToken;
var IpMessagingGrant = AccessToken.IpMessagingGrant;
var http = require("http");
module.exports.handler = function(event, context, cb) {
var accountSid = 'TWILIO-ACCOUNT-SID';
var authToken = 'TWILIO-AUTH-TOKEN';
var IpMessagingClient = TWILIO.IpMessagingClient;
var client = new TWILIO.IpMessagingClient(accountSid, authToken);
var service = client.services('TWILIO-SERVICE-SID');
service.channels(event.ChannelSid).messages.create({
body: 'what say you ?',
from: FROM
}).then(function(response) {
console.log("this is success");
console.log(response);
//return context.done();
return context.succeed(response);
//return cb(null, response);
}).fail(function(error) {
console.log("this is failure");
console.log(error);
//return context.done();
return context.fail(JSON.parse(error.errorMessage));
//return cb(null, error);
});
};
Auf der Clientseite, Twilio gibt mir einen 50056
Fehler (https://www.twilio.com/docs/api/errors/50056), die sagt: "Webhook der Verarbeitung des Befehls abgebrochen". Laut den Dokumenten ist es möglich, dass meine Funktion keinen -Status zurückgibt, was keinen Sinn ergibt, da ich einen 200-Statuscode erhalte, wenn ich versuche, ihn mit PostMan zu pingen.
Bei der Überprüfung über die AWS Cloudfront-Protokolle wurde die Lambda-Funktion nicht einmal aufgerufen, sollte ich versuchen, die AWS-Lambda-Funktion über den Web-Interface-Chat auszulösen. Wenn ich jedoch versuche, diese AWS-Lambda-Funktion über Tools wie PostMan zu PINGEN, zeigt AWS Cloudfront-Protokolle, dass die Funktion aufgerufen wurde, obwohl keine Antworten gegeben werden, da der Channel-Sid nicht der richtige ist.
Wie löse ich den 50056
Fehler? Oder ist es möglich, dass Twilios IP-Messaging-Webhooks das PING von AWS-API-Endpunkten nicht zulassen?
Danke!