2016-06-19 29 views
1

Twilioの例(https://github.com/TwilioDevEd/ipm-quickstart-node)に基づいて簡単なチャットアプリケーションを作成しようとしていました。私はこれを手に入れてすぐに走ることができます。Twilioクライアントエラー:AWS Lambda/AWS APIゲートウェイを使用したTwilio IPメッセージ

私は、ユーザーがWebインターフェイス( http://localhost:3000)を介してメッセージを送信するとき、それはTwilioのウェブフックをトリガービットなど

  1. ことを修正したいです。
  2. このwebhookは、AWSラムダ 機能にマップされたAWS APIエンドポイントをPINGします。
  3. この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エンドポイントを許可しない可能性がありますか?

ありがとうございます!

答えて

2

私自身の質問に答えて: - 私がTwilio webhookをGETリクエストに変更すると、動作します!

AWSラムダがPOSTリクエストにすばやく反応しないか、TwilioのwebhookがPOSTリクエストに対して本当に速いと思っています。

関連する問題