2017-09-02 12 views
1

私はノードで書いたgoogleの行動に取り組んでおり、firebaseにデプロイしてAPI.AIで定義されたインテントで対話します。firebaseプロジェクトのノード経由でメールを送信

特定のインテントがアクティブになったときに特定のアドレスにメールを送信する機能を実装したいと考えています。私は、nodemailとsendmailパッケージを使ってみましたが、それらと一緒にデプロイした後、正しいインテントが呼び出されたときに電子メールを送信していないようです。私はそれが私が間違っている(別の可能性を私の未経験で与えられた)コード化しているかどうか、またはfirebaseデプロイメントでこれらのパッケージを指定することに固有の問題があるかどうかはわかりません。私はsendmailを実行しているコードの中にAPI.AIへの応答を返すだけでその中に入っていることを確認できました。 firebaseやAPI.AIのログにアクセスできる場合は、どうすればよいか分かりません。 API.AIはJSONレスポンスを示していますが、それについては私が知る限りです。

ここではいくつかの単純化されたコード(関連部分のみ)です。ここで

const sendmail = require('sendmail')(); 

const getSuggestion = app => { 

    const rawInput = app.getRawInput(); 

    sendmail({ 
     from: '[email protected]', 
     to: '[email protected]', 
     subject: 'test sendmail', 
     html: rawInput, 
     }, function(err, reply) { 
     console.log(err && err.stack); 
     console.dir(reply); 
     return app.ask('You said ' + rawInput + '. Do you have any further input?'); 
    }); 

}; 
+0

あなたはエラーが発生しましたか?期待どおりに動作しない最小限のコードがありますか? Firebaseのクラウド機能を使用していますか? –

+0

API.AIインターフェースやJSONレスポンスにエラーが表示されません。私はその答えにいくつかのコードを投げた。私は、クラウド機能を使用して電子メールを送信する方法があることを読んだが、それをスカートして非常に簡単なことをしたいと考えていた。 – testingtesting

+0

私は実際にクラウド機能を使用してこの作業を終了しました。 firebaseのデプロイメントに組み込まれている通常のノードパッケージを使用することはできないと思いますが、明らかに間違っている可能性があります。 – testingtesting

答えて

0

がFirebaseのためのクラウド機能(別名Firebase機能)、nodemailerやGmailを使用したサンプルです:https://github.com/firebase/functions-samples/tree/master/quickstarts/email-users

API.AIを示しが、ウェブフックの呼び出しが失敗した場合でも、API.AIのシミュレータの206は、ウェブフックの呼び出しに失敗しても一部のコンテンツがAPIによって告知されるためです。 「Show JSON」をクリックした後に206が表示されたら、Webhook(この場合はFirebase)のログをチェックしてデバッグしてください。ここではいくつかのスクリーンショットは、以下のとおりです。「SHOW JSON」をクリック enter image description here

は、以下のポップアップが作成されます。

enter image description here

この206 partial_content Webhook call failed. Error: Webhook response was empty.はあなたのウェブフックとエラーのいくつかの並べ替え、いずれかの500エラー、その正常な応答を示し、正しくフォーマットされていないか、ウェブフックのHTTPS URLが正しく入力されていません。

関連する問題