Buildfire技术问题:如何让写入Datastore的数据自动设为Live模式无需发布
解决Buildfire数据自动同步到客户端Live模式的问题
1. 修正mode参数的正确取值
你当前使用的mode: "1"不符合Buildfire API的参数规范,正确的Live模式参数值应为"live"(而非数字)。修改请求数据后,数据会直接写入Live环境,无需手动发布:
const insertOrUpdateDataToBuildFire = async (schedule) => { const requestData = { plugin_id: "mypluginID", instance_id: "myInstanceID", tag: "thetagforthisdata", data: schedule, mode: "live" // 使用正确的Live模式参数值 }; await axios.post('https://public.buildfire.com/1.0/cms/save', requestData, { headers: { 'Authorization': `Bearer ${process.env.xapi_key}`, 'Content-Type': 'application/json', 'x-api-key': process.env.x_api_key } }); };
2. 单独调用插件发布API(如果上述方法无效)
若cms/save接口仍无法直接推送到Live,可在数据保存后调用Buildfire的插件发布API,主动将草稿环境的变更同步到客户端:
// 新增发布函数 const publishPluginChanges = async () => { const publishData = { plugin_id: "mypluginID", instance_id: "myInstanceID" }; await axios.post('https://public.buildfire.com/1.0/plugin/publish', publishData, { headers: { 'Authorization': `Bearer ${process.env.xapi_key}`, 'Content-Type': 'application/json', 'x-api-key': process.env.x_api_key } }); }; // 在数据保存后调用发布 const insertOrUpdateDataToBuildFire = async (schedule) => { // 原保存代码 const requestData = { plugin_id: "mypluginID", instance_id: "myInstanceID", tag: "thetagforthisdata", data: schedule }; await axios.post('https://public.buildfire.com/1.0/cms/save', requestData, { /* headers */ }); // 触发自动发布 await publishPluginChanges(); };
3. 验证API密钥权限
确保你的x-api-key拥有操作Live环境的权限,部分密钥可能仅被限制在草稿(staging)环境操作,需在Buildfire后台核对密钥的权限配置。
内容的提问来源于stack exchange,提问作者webbin
相关产品推荐
相关产品推荐

