Twilioの例(https://github.com/TwilioDevEd/ipm-quickstart-node)に基づいて簡単なチャットアプリケーションを作成しようとしていました。私はこれを手に入れてすぐに走ることができます。Twilioクライアントエラー:AWS Lambda/AWS APIゲートウェイを使用したTwilio IPメッセージ
私は、ユーザーがWebインターフェイス( http://localhost:3000
)を介してメッセージを送信するとき、それはTwilioのウェブフックをトリガービットなど
- ことを修正したいです。
- このwebhookは、AWSラムダ 機能にマップされたAWS APIエンドポイントをPINGします。
- このAWSラムダ関数は、チャネルSid、 の認証を受け取り、単に「あなたは何を言っていますか」と返信します。
私はAWS LambdaとAWS API Gatewayを正しくセットアップしました。
はここに私のラムダコードのサンプルです:クライアント側で
'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);
});
};
、Twilioは私に、「ウェブフックは、コマンドの処理をキャンセル」と言う50056
エラー(https://www.twilio.com/docs/api/errors/50056)を与えます。ドキュメントによると、私の機能はHTTP 200
ステータスを返していない可能性があります。これはPostManを使ってpingしようとすると200ステータスコードを受け取るため意味がありません。
Webインターフェイスチャットを使用してAWSラムダ関数をトリガーしようとすると、AWS Cloudfrontログを確認してもラムダ関数が呼び出されませんでした。
一方、PostManなどのツールを使用してこのAWSラムダ関数にPINGを実行しようとすると、AWS Cloudfrontログには関数が呼び出されたことが示されますが、チャネルSidは正しいものではないため返信は行われません。
50056
エラーを解決するにはどうすればよいですか?それとも、TwilioのIP Messaging WebhooksがPing AWS APIエンドポイントを許可しない可能性がありますか?
ありがとうございます!