云工作流支持将消息通过短信服务 SMS(Short Message Service)对外发送到手机短信。本文介绍云工作流集成短信服务的示例代码、参数说明、返回值说明和支持的集成模式。
示例代码
以下为一个典型的云工作流集成短信服务的示例代码片段。
Type: StateMachine
Name: MyWorkflow
SpecVersion: v1
StartAt: SendSms
States:
- Type: Task
Name: SendSms
Action: SMS:SendSms
TaskMode: RequestComplete
Parameters:
phoneNumbers: "1505818****"
signName: the****
templateCode: SMS_463******
templateParam:
code: 12345678
End: true
代码解析如下。
Action:固定为
SMS:SendSms
。TaskMode:支持请求响应(RequestComplete)和等待用户自定义回调(WaitForCustomCallback)两种集成模式。
Name、Description:根据需要配置能表达业务含义的名称和描述。
参数说明
参数名称 | 是否必选 | 参数说明 | 示例值 |
phoneNumbers | 是 | 接收短信的手机号码。手机号码格式如下:
支持对多个手机号码发送短信,手机号码之间以半角逗号(,)分隔。上限为1000个手机号码。批量调用相对于单条调用及时性稍有延迟。 | 1390000**** |
signName | 是 | 短信签名名称。您可以登录短息服务控制台,在左侧导航栏,选择国内消息或国际/港澳台消息,然后在签名管理页签获取。 说明 必须是已添加、并通过审核的短信签名。更多短信签名规范,请参见短信签名规范。 | 阿里云 |
templateCode | 是 | 短信模板Code。您可以登录短息服务控制台,在左侧导航栏,选择国内消息或国际/港澳台消息,然后在模板管理页签查看。 说明 必须是已添加、并通过审核的短信模板,且发送国际/港澳台消息时,请使用国际/港澳台短信模板。 | SMS_15305**** |
templateParam | 否 | 短信模板变量对应的实际值。支持传入多个参数,例如{"name":"张*","number":"1390000\*\*\*\*"}。
|
|
返回值说明
业务请求的返回结果,会被包装在一个JSON对象中,示例如下。
{
"EntryList":{
"BizId":"176920698********",
"Code":"OK",
"Message":"OK",
"RequestId":"78FF8E83-E133-545F-8B02-********"
},
"Headers":{
"access-control-allow-origin":"*",
"access-control-expose-headers":"*",
"connection":"keep-alive",
"content-length":"110",
"content-type":"application/json;charset=utf-8",
"date":"Wed, 25 Oct 2024 02:45:10 GMT",
"etag":"1t7zGBmxXHA2QlF2********",
"keep-alive":"timeout=25",
"x-acs-request-id":"78FF8E83-E133-545F-8B02-********"",
"x-acs-trace-id":"a91f039d47eb8a7b8ffd68********""
},
"StatusCode":200
}
执行模式
云工作流集成短信服务时,支持请求响应(RequestComplete)和等待用户自定义回调(WaitForCustomCallback)两种集成模式。
RequestComplete
云工作流向短信服务发送消息后,即视为当前Task完成,并以短信服务平台的返回值作为当前节点的输出。
WaitForCustomCallback
发起SMS短信发送请求后,当前Task进入挂起状态。直到用户调用ReportTaskSucceeded - 汇报指定的任务执行成功或ReportTaskFailed - 汇报指定的任务执行失败接口返回执行结果后,再推进流程的执行。
用户需要使用$Context.Current.TaskToken
表达式,将其作为回调平台的Token,然后继续推进流程执行。