【问题标题】:Try to connect to a server with Google Assistance App尝试使用 Google Assistant App 连接到服务器
【发布时间】:2018-01-03 15:02:28
【问题描述】:

我需要将数据从我的 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 的。

【问题讨论】:

  • 你在哪里运行 javascript/node.js 代码? Google Cloud Functions 还是 Google Cloud Functions for Firebase?
  • 我正在使用来自 google 操作的 Actions SDK,它需要 action.json 包。这只需要代码的函数 URL,它是通过使用 firebase 的“functions.https.onRequest”创建的。但是,除此之外,我很确定不能使用用于 firebase 的谷歌云功能(尽管我很高兴弄错了)

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 2020-10-14
    相关资源
    最近更新 更多