javascript - 尝试使用 Google Assistant 应用连接到服务器

标签 javascript python node.js tcp actions-on-google

我需要将数据从我的 Google 协助应用程序发送到数据库。为了做到这一点,我创建了一个服务器来获取数据,将其打包,然后将其发送出去。我有主机名和端口,它可以在正常的 javascript/node.js 程序中工作,但是当我在我的谷歌助手应用程序中使用它时,什么也没有发生。我尝试找出问题所在,但看起来代码无法连接。我用来向服务器发送数据的代码如下:

    function sendData(app){
        var net = require('net');
        var message = {"test": 200};
        var thisMessage = JSON.stringify(message);
        var client = new net.Socket();
        client.connect(<port>, '<hostname>', function() {
          app.tell(JSON.stringify(client.address()));
          console.log('Connected');
          client.write(thisMessage);
        });


        client.on('data', function(data) {
          console.log('Received: ' + data);
          client.destroy();
        });

        client.on('close', function() {
          console.log('Connection closed');
        });
        return 0;
       }

(注意:出于隐私目的,省略了端口和主机名)

这完全跳过了 app.tell,让我相信连接从未建立。我知道它与服务器异步工作,但是,我不明白为什么它没有连接。 我已经在模拟中和在打开和关闭沙箱的智能手机上尝试过。有更好的连接方式吗?请注意,我连接的服务器是基于 python 的。

最佳答案

问题可能是您在 Cloud Functions for Firebase 上运行它,其具有 limit on outbound connections根据他们的免费“Spark”计划。使用此套餐,您只能连接到其他 Google 服务。这通常是开始了解如何处理 Action 请求的好方法,但有局限性。要访问 Google 外部的端点,您需要升级到其“Flame”固定价格计划或“Blaze”即用即付计划。

但是,您不需要在 Google 的服务器上运行或需要使用 node.js。您所需要的只是一个具有有效 SSL 证书的公共(public) HTTPS 服务器。如果您熟悉 JSON,则可以使用任何编程语言来处理请求和响应。如果您熟悉node.js,那么您只需要一个可以创建Express请求和响应对象的node.js服务器。

关于javascript - 尝试使用 Google Assistant 应用连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45358302/

相关文章:

linux - 如何在openwrt上自动启动nodejs应用程序 - Arduino Yun -

javascript - HTML CSS Javascript 汉堡包菜单问题

javascript - 尝试使用 jquery 动态添加复选框但没有出现任何内容

python - 使用 tensorflow image_dataset_from_directory 时从数据集中获取标签

python - 相当于 itertools.product 的 Numpy

python - 如何将 OpenCV 图像与颜色进行比较

node.js - linux在启动centos时运行脚本

javascript - 在子节点之前添加文本

javascript - 使用异步函数调用创建新的 Promise 是不好的做法吗?

javascript - 使用 ejs 嵌入用户对象