上云无忧 > 文档中心 > 腾讯云云函数实战教程 - 在小程序云开发中实现函数互调及邮件发送 | 函数部署
云函数 SCF
腾讯云云函数实战教程 - 在小程序云开发中实现函数互调及邮件发送 | 函数部署

文档简介:
环境准备: 在开始部署云函数前,您需要: 1. 申请获取小程序 AppID。 2. 下载并安装 微信开发者 IDE。 3. 在您的电脑上,安装 Node8.9 或以上运行环境。 4. 在您的电脑上,安装 npm 工具,关于 npm 详细可参考 npm 官网。 5. 阅读并了解小程序云开发使用的基础信息,详情可参考 微信官网教程。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

环境准备

在开始部署云函数前,您需要:
1. 申请获取小程序 AppID
2. 下载并安装 微信开发者 IDE
3. 在您的电脑上,安装 Node8.9 或以上运行环境。
4. 在您的电脑上,安装 npm 工具,关于 npm 详细可参考 npm 官网
5. 阅读并了解小程序云开发使用的基础信息,详情可参考 微信官网教程

创建小程序项目并部署云函数

1. 在微信开发者 IDE中,新建一个项目,并填写项目信息。
2. 在 IDE 的工具栏中,单击云开发,申请开通云端环境(即自动生成数据库实例、对象存储桶、云函数运行环境)。
3. 在 IDE 的代码栏中,右键单击 cloud 目录下的 functions,将 “当前环境” 设置为指定本地函数目录的云端环境。如下图所示:

4. 右键单击 functions,选择新建 Nodejs 云函数,新建 Nodejs 云函数。例如,新建一个名称为 test 的 Nodejs 云函数。
5. 在新建的 Nodejs 云函数的 index.js 中,编写主函数。例如,将以下代码作为主函数复制至 index.js 中。
		
const cloud = require('wx-server-sdk')
cloud.init({
env: 'test-demo-id' //环境初始化
})
// 云函数入口函数
exports.main = async (event, context) => {
console.log("Start to test")
return await cloud.callFunction({
name:'sendmail',
})
}
6. 判断是否需要安装第三方库。
是,使用 npm 工具安装或者在 package.json 中声明。 package.json 声明如下所示:
		
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"wx-server-sdk": "latest"
}
}
否,请执行下一步。
7. 右键单击新建的 Nodejs 云函数(即 test 函数),选择 “上传并部署(云端安装依赖)”,将修改后的代码同步到云端。
8. 重复执行 步骤4,新建一个 Nodejs 云函数,并将该云函数命名为 sendemail。
9. 在 sendemail 云函数的 index.js 中,编写主函数。例如,将以下代码作为主函数复制至 sendemail 云函数的 index.js 中。
		
// 云函数入口文件
const nodemailer = require("nodemailer");
var transporter = nodemailer.createTransport({
service: 'qq',
port: 465, // SMTP 端口
secure: true, // 使用 SSL
auth: {
user: 'xxxx@qq.com', // 发送邮件的邮箱
pass: '*******' // 邮箱密码
}
});
var mailOptions = {
from: 'xxxxxxx@qq.com', // 发件地址
to: 'xxxxxxxx@qq.com', // 收件列表
subject: '测试云函数', // 标题
text: '测试云函数'
};
// 云函数入口函数
exports.main = async (event, context) => {
console.log("Start to sendemail")
//开始发送邮件
const info = await transporter.sendMail(mailOptions);
console.log('Message sent: ' + info.response);
return info
}
注意
在该段代码中,需要填写您实际的邮箱地址、密码、想要发送的邮箱地址等信息。
10. 使用 npm 工具安装或者在 package.json 中声明第三方 “nodemailer” 库。 package.json 声明如下所示:
		
{
"name": "sendmail",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"wx-server-sdk": "latest",
"nodemailer":"^4.7.0"
}
}
11. 右键单击 sendemail 函数,选择 “上传并部署(云端安装依赖)”,将修改后的代码同步到云端。
12. 切换至云开发控制台,选择 “云函数”,查看新创建的函数是否显示在列表中。如下图所示,即表示 test 函数和 sendemail 函数已经在云端部署成功。

相似文档
  • 本示例主要演示了函数之间的互相调用,以及通过函数发送邮件。您可以根据自身业务的需要,自行调整代码逻辑。 运行 test 函数: 1. 在 “云开发控制台” 中,选择云函数,单击 “test” 函数,进入 “test” 函数信息页面。 2. 在 “test” 函数信息页中,单击测试,查看效果。如下图所示:
  • 使用场景: 快速生成回放文件: 直播回放可以将优质资源的价值进行放大,降低优质资源的成本,从而提升收益,通过全景录制功能可以在用户的视角将上课的内容实时录制下来,课程结束之后可以根据 Serverless 庞大的算力池快速转码,形成录制文件,实时生成回放。
  • 案例: AI 互动课堂: 通过录播真人教学视频结合 AI 技术进行线上直播互动教学。 上课前,根据教师的课程设置,将知识点讲解、互动提问、问题反馈和解答等信息录制成视频片段,上传到视频库。课堂中,通过云函数将已有的录播视频推送到 TRTC 房间进行直播。学生通过语音、触屏实现互动式学习。
  • 案例: 在线教育: 在一对一或一对多的小班课中,可以针对不同学生多维度进行录制: 对于单一学生,可以录制学生的单独数据流合成相关数据,实现记录每个学生的精彩瞬间并推送给家长。 对房间内数据进行定向录制,并生成回放,学生可以观看回放重复进行学习。 为了方便用户反复观看视频、重复学习,录制的过程可以去除冗余数据。
  • 案例: 在线教育: 在线教育的场景中,可以实现在上课的过程中将老师的音视频和学生的音视频进行合成录制,并且加入上课过程中的其他素材与人工智能分析,在真实还原上课场景的同时增加一些业务功能,增加回放视频观看效果。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部