提交 157aecec 编写于 作者: 雪洛's avatar 雪洛

docs: local launcher & sendSms

上级 86de369e
## 本地运行云函数
自2.8.1版本起HBuilderX支持云函数本地运行,调试云函数更加方便快捷。此外还可以方便批量导入数据及文件,不再受云函数超时限制(云函数上传文件到云存储只有腾讯云支持)。
**目前只支持本地运行,本地调试还在开发中**
### 使用步骤
在要本地运行的云函数上右键选择本地运行
- 如果没有安装本地运行插件,按照提示安装即可
- 如需配置运行参数请参考[配置运行测试参数](https://uniapp.dcloud.net.cn/uniCloud/quickstart?id=runparam)
![](https://img.cdn.aliyun.dcloud.net.cn/uni-app/uniCloud/uniCloud-local-1.jpg)
### 注意事项
#### 时区问题
云函数内使用的时区是utc+0,本地运行时使用的是本机时间。在使用时间戳时两者没有差异,但如果要获取年、月、日、小时要注意时区的差异。
以下方式可以获取指定时区的年、月、日、小时,可以参考一下
```js
// 获取偏移后的Date对象,例如utc+x时offset就传x
function getOffsetDate (offset) {
return new Date(
Date.now() + (new Date().getTimezoneOffset() + (offset || 0) * 60) * 60000
)
}
// 获取utc+8的小时数
const hour = getOffsetDate(8).getHours()
// 获取时间戳无需使用此方式utc+0时间戳是与utc+8时间戳一致的
```
#### 数据与存储
请务必注意云函数在本地运行时依然是连接的云端数据库与存储
#### Nodejs版本
服务空间所使用的nodejs版本为8.9,本地运行时使用的本地nodejs可能与服务空间的nodejs版本并不一致,在本地测试之后部署到云端也务必测试一下兼容性。
## 发送短信
接口形式:`uniCloud.sendSms`
发送短信功能需要去DCloud开发者中心开通,详情参考【链接待补充】
**参数说明**
|参数名 |类型 |必填 |说明 |
|:-: |:-: |:-: |:-: |
|smsKey |String |是 |调用短信接口的密钥key |
|smsSecret |String |是 |调用短信接口的密钥secret |
|templateId |String |是 |模版Id,见下方说明 |
|phone |String |是 |用户手机号 |
|data |Object |是 |填充到模版的字段, |
**参数data结构**
目前短信功能包括两个模版,暂不可自定义模版,模版形式如下。参数data内的字段会填充到
|模版Id |模板内容 |
|:-: |:-: |
|`uniID_code` |【uniID】“${name}”验证码:${code},用于${action},${expMinute}分钟内有效,请勿泄露并尽快验证。 |
|`uni_verify_code`|【uni验证】“${name}”验证码:${code},用于${action},${expMinute}分钟内有效,请勿泄露并尽快验证。 |
**上述模版对应的data结构为**
|参数名 |类型 |必填 |说明 |
|:-: |:-: |:-: |:-: |
|name |String |是 |应用名称 |
|code |String |是 |验证码串 |
|action |String |是 |验证码用途 |
|expMinute|String |是 |验证码过期时间,单位分钟 |
**返回值**
接口调用失败时会直接抛出错误,调用成功时才会有返回值
|参数名 |类型 |说明 |
|:-: |:-: |:-: |
|success|Boolean|只会返回true |
**调用示例**
```js
'use strict';
exports.main = async (event, context) => {
const res = await uniCloud.sendSms({
smsKey: '****************',
smsSecret: '****************',
templateId: 'uniID_code',
phone: '188********',
data: {
name: 'DCloud',
code: '123456',
action: '注册',
expMinute: '3',
}
})
return res
};
```
**注意事项**
- data内如果有“测试”字样系统会判定为测试用,不会真正把短信发到指定的手机号,方便开发调试
- 在短信后台绑定uniCloud服务空间之后将会只允许绑定的服务空间调用此接口,绑定列表为空时表示不限制服务空间
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册