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

如何使用Google Sheet与Dialogflow保存LINE聊天机器人接收的用户输入消息

LINE+Dialogflow聊天机器人用户消息存储至Google Sheet实现方案

1. 完成LINE与Dialogflow的基础绑定

首先确认LINE Channel已和Dialogflow完成对接:进入Dialogflow控制台的「Integrations」板块,找到LINE入口,填入LINE Developer后台对应Channel的Secret、Access Token完成绑定,绑定成功后用户发送给LINE机器人的所有消息都会默认转发到Dialogflow处理。

2. 开启Dialogflow Fulfillment Webhook

要实现自定义数据存储,需要通过Webhook中转处理用户数据:

  • 在Dialogflow控制台开启「Fulfillment」功能,选择Webhook模式,后续填入云函数的调用地址即可
  • 所有意图都需要开启「Fulfillment调用」,包括默认回退意图(Default Fallback Intent),确保所有用户输入都会触发Webhook请求,不会遗漏消息

3. 配置Google Sheet权限与API

  • 新建空白Google Sheet,设置表头为用户ID、消息时间、消息内容三个核心字段
  • 进入Google Cloud Console,搜索并启用Google Sheets API,创建服务账号,将生成的服务账号邮箱添加到Google Sheet的共享列表,授予编辑权限

4. 编写Webhook逻辑

可直接使用Google Cloud Functions编写无服务函数,核心逻辑示例(Node.js环境):

const {google} = require('googleapis');
const sheets = google.sheets('v4');

// 服务账号鉴权初始化
const auth = new google.auth.GoogleAuth({
  keyFile: '服务账号密钥文件路径',
  scopes: ['https://www.googleapis.com/auth/spreadsheets'],
});

exports.saveLineMessage = async (req, res) => {
  // 从Dialogflow请求中提取所需信息
  const userId = req.body.originalDetectIntentRequest.payload.data.source.userId;
  const sendTime = new Date().toLocaleString();
  const userContent = req.body.queryResult.queryText;

  const authClient = await auth.getClient();
  // 写入数据到Google Sheet
  await sheets.spreadsheets.values.append({
    spreadsheetId: '你的Google Sheet ID',
    range: 'Sheet1!A:C',
    valueInputOption: 'RAW',
    insertDataOption: 'INSERT_ROWS',
    resource: {
      values: [[userId, sendTime, userContent]]
    },
    auth: authClient
  });

  // 返回给用户的回复内容
  res.json({
    fulfillmentText: "疫情信息已收到,感谢你的反馈。"
  });
};

5. 功能验证

将云函数的调用地址填入Dialogflow Fulfillment的Webhook地址栏,保存后给LINE机器人发送测试消息,检查Google Sheet是否正常生成对应记录即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:06:03