我很久以前使用Firebase和dialogflow-javascript-client构建了一个应用程序。
现在,不推荐使用dialogflow-javascript-client。由于dialogflow-nodejs-client-v2是node.js客户端,因此不应该在Angular上运行。他们放弃了javascript支持吗?我无法从开发者那里得到任何答案,他们似乎只是避免它。
如果不可能,我唯一的解决方案是在我的应用程序中放弃对Dialogflow的支持。
从Javascript迁移的用户绝对没有文档或信息,这是他们唯一给你的东西:
当然,无论如何我试图运行它,认为它也是为了在javascript上运行而构建的......
但这是我得到的:
警告 ./node_modules/google-gax/node_modules/grpc/node_modules/node-pre-gyp/lib/util/versioning.js 17:20-67关键依赖:依赖的请求是一个 表达
警告 ./node_modules/google-gax/node_modules/grpc/node_modules/node-pre-gyp/lib/pre-binding.js 20:22-48关键依赖:依赖的请求是一个 表达
警告 ./node_modules/google-gax/node_modules/grpc/src/grpc_extension.js 32:12-33关键依赖:依赖的请求是一个 表达
警告 ./node_modules/google-gax/node_modules/grpc/node_modules/minimatch/minimatch.js 找不到模块:错误:无法解析'path' 'd:\纳克\ WW-应用\ node_modules \ Google处理GAX \ node_modules \ GRPC \ node_modules \ minimatch'
警告在./node_modules/minimatch/minimatch.js中找不到模块: 错误:无法解析'D:\ ng \ ww-app \ node_modules \ minimatch'中的'path'
> ./node_modules/dialogflow/src/v2/agents_client.js中的错误模块没有 发现:错误:无法解析'./agents_client_config' 'd:\纳克\ WW-应用\ node_modules \ dialogflow \ SRC \ V2'....(以下更多)
答案 0 :(得分:3)
dialogflow-nodejs-client-v2
仅支持node.js环境。要将您的代理更新为V2,您应该创建一个Cloud Function for Firebase并将请求发送到dialogflow-nodejs-client-v2
,然后从Angular代码中调用该Cloud Function,而不是直接调用API。
此方法的主要优点是:您将不再在客户端公开API凭据,这是安全隐患。
答案 1 :(得分:0)
答案 2 :(得分:0)
我找到了另一个解决方案: 我已经创建了一个javascript客户端...并且我从nodejs api getToken终结点过期时(即每小时)获取令牌...我已将getToken终结点限制在同一域中。