共计 2138 个字符,预计需要花费 6 分钟才能阅读完成。
开篇:谷歌 Skill 能做什么?
谷歌 Skill(现称 Google Action)是运行在 Google Assistant 上的语音交互应用。它可以帮你订咖啡、查天气、控制智能家居,甚至开发定制化的企业解决方案。根据 Voicebot.ai 数据,2022 年全球智能音箱用户已达 35 亿,这为语音应用开发者提供了巨大机会。

开发前准备
1. 注册谷歌开发者账号
- 访问 Google Actions Console
- 使用谷歌账号登录(建议使用长期维护的账号)
- 同意开发者条款后,点击 ”New Project”
注意:个人开发者无需付费,但发布到生产环境需要完成账号身份验证
2. 项目基础配置
在 Actions Console 中:
- 填写项目名称(如 ”MyFirstSkill”)
- 选择默认语言(中文开发者建议选 ” 中文(简体)”)
- 在 ”Build” 标签页点击 ”Add Action”
- 选择 ”Custom Intent” 开始自定义交互
Dialogflow 集成实战
选择代理类型
- Dialogflow ES:适合简单场景,免费版足够入门练习
- Dialogflow CX:适合复杂多流程对话,但学习曲线较陡
建议新手从 ES 开始:
- 在 Actions Console 点击 ”Integrations”
- 选择 Dialogflow ES 并启用 API
- 系统会自动跳转到 Dialogflow 控制台
创建第一个意图
在 Dialogflow 中:
- 点击 ”Create Intent”
- 命名意图(如 ”welcomeIntent”)
- 添加训练短语:
- “ 你好 ”
- “ 嗨 ”
- “ 打开应用 ”
- 在响应部分添加语音回复:
- “ 欢迎使用我的第一个 Skill!”
Webhook 开发 (Node.js 版)
基础服务搭建
创建项目目录并初始化:
mkdir my-google-skill && cd my-google-skill
npm init -y
npm install express body-parser actions-on-google
核心代码实现
创建 index.js:
const express = require('express');
const {WebhookClient} = require('dialogflow-fulfillment');
const app = express();
app.use(express.json());
app.post('/', (req, res) => {const agent = new WebhookClient({ request: req, response: res});
function welcomeHandler(agent) {agent.add('欢迎来到自定义 Skill!');
}
// 意图映射
let intentMap = new Map();
intentMap.set('welcomeIntent', welcomeHandler);
agent.handleRequest(intentMap);
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {console.log(`Server running on port ${PORT}`);
});
本地测试
- 安装 ngrok:
npm install -g ngrok - 启动服务:
node index.js - 新终端运行:
ngrok http 3000 - 将生成的 https 地址填入 Dialogflow 的 Fulfillment 设置
部署到云服务
推荐使用 Google Cloud Run:
- 在项目根目录创建 Dockerfile:
FROM node:14-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "index.js"]
- 执行部署命令:
gcloud builds submit --tag gcr.io/your-project-id/my-skill
gcloud run deploy --image gcr.io/your-project-id/my-skill --platform managed
新手常见错误
- 忘记启用 Dialogflow API
- 症状:集成时提示权限错误
-
解决:前往 Google Cloud Console 启用 ”Dialogflow API”
-
Webhook 超时
- 症状:5 秒内未响应导致交互失败
-
解决:复杂逻辑应异步处理,先返回接收确认
-
意图匹配失败
- 症状:用户说的话未被正确识别
-
解决:增加更多训练短语,注意覆盖同义表达
-
测试环境混淆
- 症状:修改未生效或看到旧版本
-
解决:Dialogflow 和 Actions Console 都需要点击 ”Save” 和 ”Deploy”
-
语音不自然
- 症状:TTS 发音生硬
- 解决:使用 SSML 标记,如
<speak> 请稍 <break time="800ms"/> 正在处理 </speak>
进阶学习建议
- 官方文档:Actions on Google
- 交互设计规范:Conversation Design Principles
- 示例代码库:GitHub Actions Samples
开发完成后,别忘了在 Actions Console 提交审核,通常需要 1 - 3 个工作日。你的第一个谷歌 Skill 上线后,可以通过 ”Hey Google, talk to MyFirstSkill” 来唤醒它!
正文完
发表至: 技术开发
近一天内
