# 思路:
使用工作流,先调用后台api接口,扣除用户积分,扣除成功以后,调用上传文件api接口完成文件的上传。
# 步骤:

输入参数设置2个:
1. 当前用户登录token,便于通过token获取到用户ID,后续通过用户ID扣除积分
2. 上传文件参数

下一个节点,选择插件,搜索 `apifm base` 插件,用来获取用户ID,这个插件需要2个参数:
1. domain 填你的专属域名,这个固定填写即可
2. token ,这里直接从上一步的开始节点里面直接引用这个参数过来

下一步节点,选择插件,搜索 `apifm admin` 插件,用来扣除用户积分,这个插件需要以下参数:
1. Authorization ,这是调用后台api接口的授权信息,可直接在你的“api工厂”后台,左侧菜单 “工厂设置”--> “商户信息”--> “「 Basic Authentication 」”点击查看,直接复制进去;
2. remark ,填写本次扣除积分的备注说明
3. score ,需要扣除的积分数量,扣除积分,一定要填负数,负数才是扣除,正数的话是给用户增加积分了
4. uid,用户编号,可以从上一步节点里面直接引用过来

下面根据积分扣除是否成功,进行不同的业务处理。因为有成功和失败2种情况,所以输出的结果有2种情况,所以这个时候,需要使用 “变量聚合”节点,把2种情况的数据聚合后返回:


这里是当扣除积分的插件,返回的 code 不为0,说明扣除失败了,直接把错误信息返回
另外一个分支就是扣除积分成功了,接下来进行另外一个分支的流程,调用上传文件的接口实现文件上传,选择插件,搜索 `apifm oss`:
该插件需要以下参数:
1. ext 文件的后缀,根据你自己的需要,填写 .png 或者 .jpg 之类的
2. remoteFileUrl ,传文件,这里直接引用开始节点里面的文件file即可
3. subDomain 和上面步骤里面的专属域名一样填写
4. expireHours 这个参数是说,这个文件几小时后自动删除,如果希望不自动删除,这里留空即可

上传完成后,添加输出节点,把结果输出:

code,msg,url ,直接引用变量聚合节点的返回值,返回结果
# 发布:
右上角,点击发布,发布以后工作流才可以通过coze的api接口进行调用。
如果调用工作流,请查看左侧菜单,调用工作流教程
按照上面的工作流,如果执行成功,code 返回 0 ,msg 返回 success ,url 会返回上传的文件链接地址;如果执行失败,code返回 非0 的数字,msg 返回具体的错误信息