如何自动刷新Google Actions测试草稿预览以实现长期测试?
自动化刷新Actions on Google测试预览的方法
我之前也碰到过一模一样的问题——手动刷新测试预览实在太折腾了,尤其是需要长期测试的时候。下面分享两个亲测有效的自动化方案,帮你搞定这个事儿:
方案一:用Actions on Google CLI(gactions)快速实现
这个方法最简单,适合不想写太多代码的同学:
安装gactions CLI
下载对应你操作系统的CLI版本,解压后把可执行文件加到系统环境变量里,确保终端能直接调用gactions命令。授权CLI访问你的项目
在终端运行:gactions login按照提示登录你的Google账号,授予CLI访问Actions项目的权限。
编写刷新脚本
创建一个简单的脚本(比如refresh_preview.sh),内容如下:#!/bin/bash # 刷新测试预览,设置有效期为24小时(1440分钟) gactions test --preview_mins 1440给脚本加执行权限:
chmod +x refresh_preview.sh设置定时任务
- Linux/macOS:用crontab,运行
crontab -e,添加一行让脚本每天凌晨2点自动运行:
日志会存在指定文件里,方便后续排查问题。0 2 * * * /path/to/refresh_preview.sh >> /path/to/refresh_log.log 2>&1 - Windows:用「任务计划程序」创建定时任务,每天指定时间运行这个脚本(或者写个批处理文件调用gactions命令)。
- Linux/macOS:用crontab,运行
方案二:用官方API实现更灵活的控制
如果需要更定制化的逻辑(比如根据特定条件触发刷新),可以用Actions on Google的API来实现:
创建并配置服务账号
- 打开Google Cloud控制台,找到你的Actions对应的项目,创建一个服务账号。
- 给这个服务账号分配「Actions Editor」角色,确保它有编辑测试预览的权限。
- 下载服务账号的密钥JSON文件,保存到本地(比如
service-key.json)。
编写Python刷新脚本
用Python调用API实现刷新,示例代码如下:import google.auth from google.auth.transport.requests import Request import requests # 替换成你的项目ID PROJECT_ID = "your-action-project-id" # 预览有效期设为24小时 PREVIEW_DURATION = "24h" # 加载服务账号密钥并获取认证令牌 credentials, _ = google.auth.load_credentials_from_file('service-key.json') credentials.refresh(Request()) # 构建请求头和参数 headers = { 'Authorization': f'Bearer {credentials.token}', 'Content-Type': 'application/json' } payload = { "previewSettings": { "previewDuration": PREVIEW_DURATION } } # 调用API刷新预览 api_url = f"https://actions.googleapis.com/v3/projects/{PROJECT_ID}/previews" response = requests.post(api_url, json=payload, headers=headers) if response.status_code == 200: print(f"预览刷新成功,有效期至24小时后") else: print(f"刷新失败:状态码 {response.status_code},响应内容:{response.text}")安装依赖并定时运行
- 安装所需依赖:
pip install google-auth requests - 同样用crontab(Linux/macOS)或者任务计划程序(Windows),每天定时运行这个脚本即可。
- 安装所需依赖:
注意事项
- 测试预览的最长有效期就是24小时,所以定时任务每天跑一次就够了,没必要更频繁。
- 不管用哪种方法,都要确保使用的账号(CLI登录的账号或者服务账号)有对应Actions项目的编辑权限,不然会报错。
- 建议给脚本加日志输出,定期检查日志,避免因为认证过期或者API变更导致刷新失败。
内容的提问来源于stack exchange,提问作者Jake Hassings
相关产品推荐
相关产品推荐

