2017-09-02 119 views
1

我正在研究我在節點上編寫的谷歌操作,並正在部署到firebase以通過在API.AI上定義的意圖進行交互。在firebase項目上通過節點發送電子郵件

我想實現一項功能,當特定的意圖被激活時,將電子郵件發送到特定的地址。我試過使用nodemail和sendmail軟件包,但是在部署完它們之後,他們似乎並沒有在正確的意圖被調用時發送電子郵件。我不確定是否問題在於我編寫的代碼錯誤(鑑於我的經驗不足),或者在Firebase部署中指定這些軟件包時存在某些固有問題。我已經能夠通過簡單地從API中返回對API.AI的響應來驗證我是否正在執行sendmail的代碼;如果我能夠訪問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

下面是一個使用雲功能的火力地堡(又名火力地堡功能)的樣本,nodemailer和Gmail:https://github.com/firebase/functions-samples/tree/master/quickstarts/email-users

API.AI指示API.AI模擬器中的206在webhook調用失敗時,因爲即使webhook調用失敗,某些內容仍然被API.AI所感知。如果在單擊「顯示JSON」後看到206,請檢查您的webhook(在這種情況下,Firebase)是否記錄到調試。下面是一些截圖: enter image description here

點擊「SHOW JSON」創建以下彈出:

enter image description here

206 partial_content Webhook call failed. Error: Webhook response was empty.表明某種錯誤與您的網絡掛接,無論是500錯誤,一個成功的應答無法正確格式化,或者您錯誤地輸入了Webhook的HTTPS URL。