You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用actions-on-google获取用户位置遇报错:DialogflowApp不是构造函数

解决DialogflowApp不是构造函数的错误

看起来你碰到了actions-on-google库版本兼容的问题——这个TypeError: DialogflowApp is not a constructor错误,本质是因为你用的库版本已经废弃了DialogflowApp这个旧API。下面给你两种针对性的修复方案:

方案一:适配actions-on-google v2.x版本

如果你还在使用actions-on-google包(而非最新的@assistant/conversation),v2.x版本已经把DialogflowApp重命名为Dialogflow,只需要修改导入和初始化代码即可:

'use strict';
const functions = require('firebase-functions');
// 导入Dialogflow类而非旧的DialogflowApp
const { Dialogflow } = require('actions-on-google');

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  // 用Dialogflow构造函数初始化实例
  const app = new Dialogflow({ request, response });

  // 示例:添加获取用户位置的意图处理逻辑
  function handleGetLocation(app) {
    // 请求位置权限
    app.askForPermissions('获取你的位置信息以便提供服务', ['DEVICE_PRECISE_LOCATION']);
  }

  // 绑定意图到处理函数
  const actionMap = new Map();
  actionMap.set('your-get-location-intent', handleGetLocation);
  app.handleRequest(actionMap);
});

方案二:升级到最新的@assistant/conversation库

如果想使用Google Assistant最新的API,建议迁移到@assistant/conversation包(v3+),步骤如下:

  1. 安装新依赖:
npm install @assistant/conversation
  1. 修改你的 fulfillment 代码:
'use strict';
const functions = require('firebase-functions');
const { Conversation, Permission } = require('@assistant/conversation');

// 初始化Conversation实例
const app = new Conversation({ debug: true });

// 绑定获取位置的意图处理逻辑
app.handle('get-user-location', conv => {
  // 检查是否已获取位置权限
  if (conv.user.location) {
    const { city, coordinates } = conv.user.location;
    conv.add(`我获取到你的位置是${city},坐标是${coordinates.latitude}, ${coordinates.longitude}`);
  } else {
    // 请求用户授权位置
    conv.ask(new Permission({
      context: '为了给你提供精准的本地化服务',
      permissions: 'DEVICE_PRECISE_LOCATION'
    }));
  }
});

// 导出云函数
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);

额外注意事项

  • 不管用哪种方案,都要在Dialogflow控制台的意图设置中,为对应的意图添加「权限请求」参数,选择「设备的精确位置」或「设备的大致位置」。
  • 部署前记得在函数目录下运行npm install,确保依赖包正确安装。

内容的提问来源于stack exchange,提问作者Roberto Pettinau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:50:58