[英]nodejs-dialogflow library returning TypeError: dialogflow.SessionsClient is not a constructor
[英]Is the "dialogflow-fulfillment-nodejs" library still maintained or do I need to switch to the "Dialogflow API: Node.js Client" library?
我在庫“dialogflow-fulfillment-nodejs”的github中意識到,即使在他們寫的“README.md”中也沒有新的更新和許多關於該庫是否會繼續的討論“警告:該庫不再維護。它應該只在使用內聯編輯器時使用。”
我一直在用 DialogFlow 上的內嵌編輯器進行測試,但我意識到當我將 Cloud Functions 版本從 Node 8 更改為 Node 10 時,因為 Firebase 表示對 Node 8 的支持將結束,我想改變版本,但是在在線編輯器中進行部署時我遇到了很多問題,所以我想是不是庫本身的問題仍然使用 package.json 中的 Node 6?
仍然使用 Node 6 的這個庫是否存在問題,因此在 Cloud Functions 中更改為 Node 10 時,他停止了部署?
我應該在我的 webhook 服務中使用什么?
正如您可以從公共存儲庫中讀取的那樣,該庫不再維護。 然而,它也說:
...它應該只在使用內聯編輯器時使用
此外,當查看啟用部分下的 Dialogflow 控制台時,啟用內聯編輯器選項時,它指出:
新創建的雲函數現在使用 Node.js 10 作為運行時引擎。 查看遷移指南以獲取更多詳細信息。
有關圖形參考,請參閱img 。
我最近創建了最后一個 Cloud Function,可以確認在查看package.json
文件時引擎已正確設置版本。
因此,即使不再維護該庫,內聯編輯器中的支持仍然可用,我在他們的文檔中看不到任何有關它被棄用的信息。 我的結論是您可以放心地使用它。
最后,關於您使用內聯編輯器部署 Cloud Function 的問題,可能是因為其他原因。 我的猜測是您或具有所需權限的人直接對 Cloud Function 進行了更改,而不是使用內聯編輯器; 因此,屬於限制部分提到的情況,說明如下:
如果您使用 Cloud Functions 控制台修改代碼,則無法再使用內聯編輯器修改代碼。 您的函數將繼續為您的代理提供履行,但未來必須在 Cloud Functions 控制台中進行編輯。
如果您想繼續使用內聯編輯器來部署您未來的更改,我建議您備份您的雲功能,並使用內聯編輯器創建一個新功能(為此您可能需要禁用內聯編輯器並手動刪除之前的雲功能創建,記得備份你的代碼和配置)。
Dialogflow API:Node.js 客戶端不是用於實現 webhook 的庫。 它旨在用作調用 Dialogflow 以構建/編輯代理或提交內容以確定匹配 Intent 的客戶端。
對於 webhooks,您需要自己解析 JSON 並發送格式正確的 JSON 作為響應的一部分。 雖然dialogflow-fulfillment-nodejs庫沒有被棄用,但如前所述,它也沒有被維護。 因此,如果 Dialogflow ES 確實獲得更新 - 該庫可能不會。 有第三方庫,如多義正在上合作,提供滿足,並在行內編輯器這些可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.