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

如何实现Google Home调用API获取点数并通过DialogFlow播报?

嘿,我刚好折腾过类似的需求,给你拆解下具体怎么做——你已经用上DialogFlow的webhook了,其实核心就是在你的服务器代码里对接那个点数API,然后把结果包装成DialogFlow要的格式返回就行~

实现Google Home播报API点数的完整步骤

1. 先把DialogFlow的意图配置到位

  • 首先确认你创建的查询意图(比如叫“查询我的点数”)已经开启了webhook调用:在意图的「Fulfillment」板块,勾选“Enable webhook for intent”。这样用户触发这个意图时,DialogFlow才会给你的服务器发POST请求。
  • 别忘了给意图加些自然的训练短语,比如“我的点数有多少?”“帮我查下当前点数”“看看我现在有几点”,让Google Home能准确识别用户的提问。

2. 在你的服务器里处理webhook请求

DialogFlow发过来的POST请求体里有一堆字段,但你不用管太多,只需要做这两件事:

  1. 向你的点数API发起GET请求,拿到返回的数字;
  2. 把数字转换成口语化的文本,塞进fulfillmentText字段返回给DialogFlow。

给你两个常用语言的示例:

Node.js(Express框架)

const express = require('express');
const axios = require('axios');
const app = express();
app.use(express.json());

// 处理DialogFlow的webhook请求
app.post('/webhook', async (req, res) => {
  try {
    // 调用你的点数API,替换成实际地址
    const pointsRes = await axios.get('https://你的点数API地址');
    const points = pointsRes.data;
    
    // 构造返回给DialogFlow的响应,文本尽量口语化
    res.json({
      fulfillmentText: `你的当前点数是${points}点哦`
    });
  } catch (err) {
    // 处理API调用失败的情况,返回友好提示
    res.json({
      fulfillmentText: '抱歉呀,暂时查不到你的点数,稍后再试试吧'
    });
  }
});

app.listen(3000, () => console.log('Webhook服务器跑在3000端口啦'));

Python(Flask框架)

from flask import Flask, request, jsonify
import requests

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])
def handle_webhook():
    req_data = request.get_json()
    try:
        # 调用点数API,替换成实际地址
        api_res = requests.get('https://你的点数API地址')
        points = api_res.text.strip()
        
        # 返回符合要求的响应
        return jsonify({
            'fulfillmentText': f'你的当前点数是{points}点哦'
        })
    except Exception as e:
        print(f'出错了:{e}')
        return jsonify({
            'fulfillmentText': '抱歉呀,暂时查不到你的点数,稍后再试试吧'
        })

if __name__ == '__main__':
    app.run(port=5000, debug=True)

3. 测试调试小技巧

  • 先用DialogFlow的「测试模拟器」输入问题,看看能不能返回正确的播报文本,这一步能快速排查webhook是否正常工作。
  • 如果是本地开发服务器,记得用ngrok之类的工具把本地端口暴露到公网,不然DialogFlow没法调用你的webhook(比如ngrok http 3000,然后把生成的https地址填到DialogFlow的webhook配置里)。
  • 要是点数API有认证或者跨域问题,记得在你的服务器代码里处理好,比如加请求头、代理请求之类的。

4. 关联到Google Home设备

等DialogFlow这边调试没问题后,去Actions on Console导入你的DialogFlow项目,完成基础配置(比如设置技能名称、语音交互的欢迎语),然后就能用自己的Google Home设备测试了——对着它说你设置的训练短语,就能听到点数播报啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:39:33