微信扫码
添加专属顾问
 
                        我要投稿
“ dify默认是不可以直接使用验证码短信服务的,如果你想要用短信服务,你就得用云函数写一个api服务进行调用。”
本文教程目录:
用阿里云FC云函数手搓一个验证码短信api服务;
讲解短信api在工作流中使用思路。
01
—
手搓一个验证码短信api服务
首先你得用阿里云账号去购买短信资源包,然后申请签名并通过。
第一步:创建一个云函数
第二步:为函数安装阿里云短信官方依赖包
点击“terminal”,再点击“new terminal”,输入pip安装指令,如下所示:
pip install -t . alibabacloud_dysmsapi20170525==3.0.0
第三步:输入源码
本文示例为了方便大家快速体验,提供一个我个人手搓的源码给大家(编程水准有限,大家不要笑话我)
from flask import Flask, request, jsonifyimport osimport jsonfrom typing import Listfrom alibabacloud_dysmsapi20170525.client import Client as Dysmsapi20170525Clientfrom alibabacloud_tea_openapi import models as open_api_modelsfrom alibabacloud_dysmsapi20170525 import models as dysmsapi_20170525_modelsfrom alibabacloud_tea_util import models as util_modelsfrom alibabacloud_tea_util.client import Client as UtilClientREQUEST_ID_HEADER = 'x-fc-request-id'app = Flask(__name__)class Sample:def create_client() -> Dysmsapi20170525Client:config = open_api_models.Config(access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])config.endpoint = 'dysmsapi.aliyuncs.com'return Dysmsapi20170525Client(config)def send_sms():try:data = request.get_json()phone_numbers = data.get('phone_numbers')sign_name = data.get('sign_name')template_code = data.get('template_code')template_param_code = data.get('template_param_code')if not all([phone_numbers, sign_name, template_code, template_param_code]):return jsonify({"error": "All fields are required"}), 400client = Sample.create_client()send_sms_request = dysmsapi_20170525_models.SendSmsRequest(phone_numbers=phone_numbers,sign_name=sign_name,template_code=template_code,template_param=f'{{"code":"{template_param_code}"}}')runtime = util_models.RuntimeOptions()response = client.send_sms_with_options(send_sms_request, runtime)return jsonify({"message": "SMS sent successfully", "response": response.to_map()}), 200except Exception as error:print(error)return jsonify({"error": str(error)}), 500if __name__ == '__main__':app.run(host='0.0.0.0', port=9000)
删除掉系统自带的示例代码,复制上述源码并粘贴进去,点击“部署代码”等待完成。
第四步:按照上次的教程,设置好虚拟环境变量和http触发器即可。
【附案例】阿里云FC云函数做成api服务接入到dify中
02
—
短信验证码在dify中的应用思路
在谈应用之前,我必须要给大家普及一下验证码服务必需的参数都是干什么的:
phone_numbers:接收验证码短信的手机号码,一般是用户的手机号码
sign_name:你在阿里云申请通过的短信签名
template_code:短信内容模版,阿里云有系统默认的验证码模版,如SMS_153660285
template_param_code:验证码,4~6位长度的随机整数,这个整数可以在工作流中用代码节点随机生成
接下来就是工作流中使用http节点了:
发送之后,短信收到的就是这样的。
注意事项:
验证码的随机数生成之后,建议大家用会话变量临时存储起来,当用户输入收到的验证码,再用代码节点写个简单的对比脚本进行验证,验证通过了,才可以执行另外的工作流。
核心逻辑:
创建两个会话变量,分别是state、code。
state变量:默认值为0,表示当前未通过验证
code变量:存储生成的验证码
先用条件判断读取state变量,如果为0,就要求用户输入手机号码,执行http节点,将随机生成的验证码存到code变量中;
再要求用户输入收到的验证码,用代码节点比较code,如果一致,就用变量赋值节点修改state变量值为1,表示已经通过了验证。只有验证通过的会话才能执行另外的工作流分支。
好了,就讲这么多吧,其实很简单,关键是短信验证码的api服务,你需要通过阿里云FC云函数部署好,然后用dify调用就行。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-10-30
Dify流程暂停与人工干预:3种实现方案+避坑指南
2025-10-16
告别升级噩梦:Dify 二次开发的无缝适配策略与实战案例(基于 v1.9.1)
2025-10-13
用Dify搭建企业知识库:5个实战技巧提升检索准确率90%
2025-10-13
Dify接口调用实战指南:从入门到精通的避坑手册,收藏了!
2025-10-12
Dify1.6.0升级1.9.1步骤及踩坑记
2025-10-10
用 Dify 零代码搭建 AI 用研助理,5分钟完成100个虚拟用户调研
2025-09-30
重大消息,刚刚Dify 1.9.1发布了!我们聊聊带来了哪些吸引人的功能特性?
2025-09-26
内网环境下Dify1.9.0版本镜像构建过程记录
 
            2025-10-13
2025-09-03
2025-09-16
2025-09-06
2025-08-19
2025-09-23
2025-09-02
2025-08-18
2025-09-04
2025-10-12
2025-09-30
2025-09-23
2025-09-06
2025-09-05
2025-08-29
2025-08-18
2025-08-02
2025-07-30