专栏首页dmhsq_csdn_blog使用云开发每天定时向女朋友发送短信(早安天气加情话,晚安我爱你)
原创

使用云开发每天定时向女朋友发送短信(早安天气加情话,晚安我爱你)

上次我们使用云函数定时向女朋友推送邮件 使用云函数每天定时向女朋友发送邮件推送天气 开发工具 Hbuilder X 使用uni-app uniCloud 云开发 如果你对Hbuilder X uni-app uniCloud 云开发不是很熟悉可以先看这几篇文章 云开发系列 这次我们使用短信,每天早上六点向女朋友发送天气和情话短信 晚上十点 发送晚安短信 爱她 就每天早上六点告诉他今天的天气,再来句情话或者小故事 当然你也可以定时晚上发送 睡前小故事 参考文档 https://uniapp.dcloud.io/uniCloud/README 这是测试的短信

爱她的短信

短信服务

进入 Dcloud 开发者中心

https://dev.dcloud.net.cn/

如果没有账号 注册即可

开通短信服务

爱她的短信

开通 后可以充值一块钱当作测试

添加签名

爱她的短信

我这里只用云函数 且只用于给女朋友推送短信

等待审核完成即可 同时可以去配置模板

添加模板

爱她的短信

我是这样填写的

爱她的短信

注意这里的 weekday weather story 你可以自己定义 比如 name 等等

等会要用到

等待审核完成即可

创建项目

爱她的短信
爱她的短信
爱她的短信

右键点击uniCloud关联服务空间 如果没有 请登陆控制台https://unicloud.dcloud.net.cn

新建一个服务空间

爱她的短信

绑定服务空间后 创建cloudfunctions目录

右键点击cloudfunctions目录 选择创建云函数

我们下面的代码除了页面代码都写在云函数里面

爱她的短信

发送短信

发送代码

文档地址

https://uniapp.dcloud.io/uniCloud/send-sms

smsKey和 smsSecret 在基础配置里

templateId是模板id审核过了会有

data

try {
    const res = await uniCloud.sendSms({
      smsKey: '****************',
      smsSecret: '****************',
      phone: '***********',
      templateId: '模板id',
      data: {
        weekday: 'DCloud',
        weather: '123456',
        story: '注册'
      }
    })
    // 调用成功,请注意这时不代表发送成功
    return res
  } catch(err) {
    // 调用失败
    console.log(err.errCode)
    console.log(err.errMsg)
    return {
      code: err.errCode,
      msg: err.errMsg
    }
  }

情话获取

可以使用云数据库 自己添加

爱她的短信

也可以从网上获取 土味情话

比如 这个api http://shiyan666.cn/api/twqh.php

function getQH(city) {
	let res = uniCloud.httpclient.request('http://shiyan666.cn/api/twqh.php')
	return new Promise(function(resolve) {
		res.then(ress => {
			let arrayBuffer = ress.res.data
			let unit8Arr = new Uint8Array(arrayBuffer)
			let encodedString = String.fromCharCode.apply(null, unit8Arr)
			let decodedString = decodeURIComponent(escape(encodedString))
			let data = JSON.parse(JSON.stringify(decodedString))
			resolve(data)
		})
	})
}

如果是从数据库获取 就获取后根据当天为周几 就返回xid为几的情话

数据库可以存放经过自己筛选的 可以一次放一个月的 或者七天的 当情话发过一遍后

给自己的手机发短信提醒 情话已经用过一遍

当然如果你有时间 还可以自定义 写个小后台 向数据库存入数据 云函数读取后 第二天发送

发送完自动删除 如果数据库没存 就默认调用情话数据库/网上获取

天气获取

appid和appsecret的获取 参考网站 https://tianqiapi.com/

function getTQ(city) {
	let res = uniCloud.httpclient.request("https://tianqiapi.com/api?version=v6&appidxxxx&appsecret=sxxx&city=" +
		city)
	return new Promise(function(resolve) {
		res.then(ress => {
			let arrayBuffer = ress.res.data
			let unit8Arr = new Uint8Array(arrayBuffer)
			let encodedString = String.fromCharCode.apply(null, unit8Arr)
			let decodedString = decodeURIComponent(escape(encodedString))
			let data = JSON.parse(decodedString)
			resolve(data)
		})
	})
}

嵌入数据

let datas = await getTQ('城市名 不要加县市 比如天津');
let qh = await getQH();

这是我的发送短信的data

data: {
	weekday: datas.week + ',亲爱的',
	weather: `当前温度${datas.tem}℃,最高温度${datas.tem1}℃,最低温度${datas.tem2}℃,出行建议:${datas.air_tips}\n`,
	story: '土味情话:' + qh
}

api获取情话发送短信完整代码

'use strict';

function getTQ(city) {
	let res = uniCloud.httpclient.request("https://tianqiapi.com/api?version=v6&appid=xxxx&appsecret=xxxx&city=" +
		city)
	return new Promise(function(resolve) {
		res.then(ress => {
			let arrayBuffer = ress.res.data
			let unit8Arr = new Uint8Array(arrayBuffer)
			let encodedString = String.fromCharCode.apply(null, unit8Arr)
			let decodedString = decodeURIComponent(escape(encodedString))
			let data = JSON.parse(decodedString)
			resolve(data)
		})
	})
}

function getQH(city) {
	let res = uniCloud.httpclient.request('http://shiyan666.cn/api/twqh.php')
	return new Promise(function(resolve) {
		res.then(ress => {
			let arrayBuffer = ress.res.data
			let unit8Arr = new Uint8Array(arrayBuffer)
			let encodedString = String.fromCharCode.apply(null, unit8Arr)
			let decodedString = decodeURIComponent(escape(encodedString))
			let data = JSON.parse(JSON.stringify(decodedString))
			resolve(data)
		})
	})
}
exports.main = async (event, context) => {
	let datas = await getTQ('xxxx');
	let qh = await getQH();
	try {
		const res = await uniCloud.sendSms({
			smsKey: 'fee5c97e6aeaaae9d0d8923e62229797',
			smsSecret: 'xxxxxxx',
			phone: 'xxxxxxx',
			templateId: 'xxxxx',
			data: {
				weekday: datas.week + ',亲爱的',
				weather: `当前温度${datas.tem}℃,最高温度${datas.tem1}℃,最低温度${datas.tem2}℃,出行建议:${datas.air_tips}\n`,
				story: ':土味情话:' + qh
			}
		})
		// 调用成功,请注意这时不代表发送成功
		return "成功"
	} catch (err) {
		// 调用失败
		console.log(err.errCode)
		console.log(err.errMsg)
		return {
			code: err.errCode,
			msg: err.errMsg
		}
	}
};

如果情话来源为数据库

根据周几查询情话

这里我的云数据库

爱她的短信

查询代码

const dbs = uniCloud.database();
	let db = dbs.collection('story')
	let now = new Date();
	let day = now.getDay();
	let res = await db.where({xid: day}).get()
	console.log(res.data[0].story)

情话用完警告

比如今天是周三 那么情话是周四早上6点发第一个 下周四发完 所以我们新建一个数据表

爱她的短信

只需要一个数据

爱她的短信

每次发送后都会获取下tx 如果不是7就加1 如果为7说明用完 将tx重置为0防止你忘了设置新的 从第一条开始发送

并且向你发送告警短信

tx为你本次修改数据库发送的天数 从0~7 为7时置0并发送警告消息

数据库使用 参考文档

https://uniapp.dcloud.io/uniCloud/cf-database?id=%e6%b7%bb%e5%8a%a0%e6%9f%a5%e8%af%a2%e6%9d%a1%e4%bb%b6

	const dbs = uniCloud.database();
	let db = dbs.collection('story')
	let now = new Date();
	let day = now.getDay();
	let qh = await db.where({xid: day}).get()
	let dbtx = dbs.collection('tx')
	let res = await dbtx.get()
	let tx = res.data[0].tx
	if(tx==7){
		tx = 0;
		let updb = await dbtx.doc('b00064a7602d226805806e0e2eb8b529').update({
		  tx: tx
		});
		try {
			const res = await uniCloud.sendSms({
				smsKey: 'xxxxxxxx',
				smsSecret: 'xxxxxxxxxx',
				phone: 'yourphone',
				templateId: 'xxxxx',
				data: {
					weekday: '用完啦',
					weather: '用完啦',
					story: '用完啦'
				}
			})
			// 调用成功,请注意这时不代表发送成功
			return "成功"
		} catch (err) {
			// 调用失败
			console.log(err.errCode)
			console.log(err.errMsg)
			return {
				code: err.errCode,
				msg: err.errMsg
			}
		}
	}
	else{
		tx = tx+1;
		let updb = await dbtx.doc('b00064a7602d226805806e0e2eb8b529').update({
		  tx: tx
		});
	}

数据库获取情话发送短信完整代码

'use strict';
function getTQ(city) {
	let res = uniCloud.httpclient.request("https://tianqiapi.com/api?version=v6&appid=xxxx&appsecret=xxxxx&city=" +
		city)
	return new Promise(function(resolve) {
		res.then(ress => {
			let arrayBuffer = ress.res.data
			let unit8Arr = new Uint8Array(arrayBuffer)
			let encodedString = String.fromCharCode.apply(null, unit8Arr)
			let decodedString = decodeURIComponent(escape(encodedString))
			let data = JSON.parse(decodedString)
			resolve(data)
		})
	})
}
exports.main = async (event, context) => {
	//event为客户端上传的参数
	const dbs = uniCloud.database();
	let db = dbs.collection('story')
	let now = new Date();
	let day = now.getDay();
	let qha = await db.where({xid: day}).get()
	let qh = qha.data[0].story
	let datas = await getTQ('xxx')
	try {
		const res = await uniCloud.sendSms({
			smsKey: 'xxxxx',
			smsSecret: 'xxxxx',
			phone: 'xxxxx',
			templateId: 'xxxx',
			data: {
				weekday: datas.week + ',亲爱的',
				weather: `当前温度${datas.tem}℃,最高温度${datas.tem1}℃,最低温度${datas.tem2}℃,出行建议:${datas.air_tips}\n`,
				story: ':土味情话:' + qh
			}
		})
		let dbtx = dbs.collection('tx')
		let res = await dbtx.get()
		let tx = res.data[0].tx
		let id = res.data[0]._id
		if(tx==7){
			tx = 0;
			let ipdb = await dbtx.doc(id).update({
			  tx: tx
			});
			try {
				const res = await uniCloud.sendSms({
					smsKey: 'xxxxxxxx',
					smsSecret: 'xxxxxxxxxx',
					phone: 'yourphone',
					templateId: 'xxxxx',
					data: {
						weekday: '用完啦',
						weather: '用完啦',
						story: '用完啦'
					}
				})
				// 调用成功,请注意这时不代表发送成功
				return "成功"
			} catch (err) {
				// 调用失败
				console.log(err.errCode)
				console.log(err.errMsg)
				return {
					code: err.errCode,
					msg: err.errMsg
				}
			}
		}
		else{
			tx = tx+1;
			let ipdb = await dbtx.doc(id).update({
			  tx: tx
			});
		}
		
	} catch (err) {
		// 调用失败
		console.log(err.errCode)
		console.log(err.errMsg)
		return {
			code: err.errCode,
			msg: err.errMsg
		}
	}
	
};

编写页面自定义修改情话(以七条为例一周嘛)

以上面那个数据库为例子

效果

爱她的短信

云函数

爱她的短信
'use strict';
exports.main = async (event, context) => {
	//event为客户端上传的参数
	let type = event.type
	const dbs = uniCloud.database();
	let db = dbs.collection('story')
	if(type==1){
		let res = await db.get()
		return res
	}else if(type==2){
		let qh = await db.where({xid: event.xid}).get()
		let id = qh.data[0]._id
		let updb = await db.doc(id).update({
		  story: event.story
		});
		return updb
	}else{
		return "error"
	}
};

页面代码

<template>
	<view class="content">
		<view v-for="item in tableList" style="border: #DD524D solid 1px;">
			<view class="text-area">{{item.xid}}</view>
			<textarea v-model="item.story"></textarea>
			<button type="primary" @click="upstory(item.xid,item.story)">修改</button>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				tableList: [],
				butable: []
			}
		},
		onLoad() {
			this.getDB();
		},
		methods: {
			getDB() {
				let vm = this;
				uniCloud.callFunction({
					name: 'getdbs',
					data: {
						type: 1
					},
					success: function(res) {
						console.log(res.result.data)
						vm.tableList = res.result.data
						vm.butable = JSON.parse(JSON.stringify(vm.tableList))
					}
				})
			},
			upstory(xid, story) {
				let vm = this;
				if(this.butable[xid-1].story==story){
					uni.showToast({
						icon: 'none',
						title: '没有任何变化'
					})
					return 
				}
				uniCloud.callFunction({
					name: 'getdbs',
					data: {
						type: 2,
						xid: xid,
						story: story
					},
					success: function(res) {
						if (res.result.updated == 0) {
							uni.showToast({
								icon: 'none',
								title: '更新失败'
							})
						}
						if(res.result.updated == 1) {
							uni.showToast({
								icon: 'none',
								title: '更新成功'
							})
							vm.butable = JSON.parse(JSON.stringify(vm.tableList))
						}
					}
				})
			}
		}
	}
</script>

<style>
	.content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	.text-area {
		display: flex;
		justify-content: center;
	}
</style>
爱她的短信

这样就可以自定义情话了哈哈 然后短信会发送以这个数据库里面的情话

自定义情话发送代码

代码和数据库的一样 因为本身就是修改数据库的情话

定时每天早上六点发送

当你开发完云函数(右键点击云函数选择上传部署) 后上传部署

打开控制台 https://unicloud.dcloud.net.cn

找到部署的云函数

爱她的短信
爱她的短信
[
  {
    "name": "myTrigger",
    "type": "timer",
    "config": "0 0 6 * * * *"
  }
]

晚安短信

当然你也可以发送晚安短信

代码大差不差

爱她的短信

代码

'use strict';

function getTQ(city) {
	let res = uniCloud.httpclient.request("https://tianqiapi.com/api?version=v6&appid=xxxxx&appsecret=xxxx&city=" +
		city)
	return new Promise(function(resolve) {
		res.then(ress => {
			let arrayBuffer = ress.res.data
			let unit8Arr = new Uint8Array(arrayBuffer)
			let encodedString = String.fromCharCode.apply(null, unit8Arr)
			let decodedString = decodeURIComponent(escape(encodedString))
			let data = JSON.parse(decodedString)
			resolve(data)
		})
	})
}

exports.main = async (event, context) => {
	let datas = await getTQ('xxxx');
	try {
		const res = await uniCloud.sendSms({
			smsKey: 'xxxxxxx',
			smsSecret: 'xxxxxx',
			phone: 'xxxxxx',
			templateId: 'xxxxx',
			data: {
				weekday: datas.week + ',晚安亲爱的\n',
				weather: `当前温度${datas.tem}℃,最高温度${datas.tem1}℃,最低温度${datas.tem2}℃,注意增减衣物哦\n`,
				story: ':晚安老婆之我爱你'
			}
		})
		// 调用成功,请注意这时不代表发送成功
		return "成功"
	} catch (err) {
		// 调用失败
		console.log(err.errCode)
		console.log(err.errMsg)
		return {
			code: err.errCode,
			msg: err.errMsg
		}
	}
};

定时每天晚上十点发送

[
  {
    "name": "myTrigger",
    "type": "timer",
    "config": "0 0 22 * * * *"
  }
]

爱她 就每天早上六点告诉他今天的天气,再来句情话或者小故事

当然你也可以定时晚上发送 睡前小故事

大学之道亦在自身,努力学习,热血青春

有问题可以下方留言,看到了会回复哦

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 十行python代码定时给微信好友发送晚安,自动应答--python云舔狗

    每当我看到这一幅幅漫画就想起了我那逝去的青春,作为一只快乐的小狗在夕阳下奔跑,追逐那位(些)不曾回头的她(们),如果早早学会python,成为一只“云舔狗”,也...

    行哥玩Python
  • Python爬取糗事百科所有段子

    D:\Python\venv\Scripts\python.exe D:/Python/venv/test8.py

    py3study
  • 程序员如何用Python了解女朋友的情绪变化?

    有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够关心她。你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又忘记了。你觉得自己很委屈?...

    Python数据科学
  • 程序员如何用Python了解女朋友的情绪变化?

    有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够关心她。你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又忘记了。你觉得自己很委屈?...

    小小詹同学
  • 教你用Python感知女朋友的情绪变化!

    有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够关心她。你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又忘记了。你觉得自己很委屈?...

    昱良
  • 520来了,教你用Python感知女朋友的情绪变化!

    有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够关心她。你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又忘记了。你觉得自己很委屈?...

    智能算法
  • 利用Python搞定女朋友的小情绪~

    脱单狗福利!每天不同时间段给女友定时给女友发消息,不错过早上起床、中午吃饭、晚上吃饭、晚安时间!

    Python数据科学
  • 情人节,给单身的数据分析师们介绍一个男人

    他就是:被称为Python领域最伟大工程师的Kenneth Reitz,绝对的大神级人物。

    CDA数据分析师
  • 三分钟给女票写个“彩虹屁”bot | 🏆 技术专题第七期征文

    前几天 ~女票~ -> 女同学甩给我上面那张图,说她也想每天都能收到甜甜的彩虹屁。好家伙,我一寻思这不就是个彩虹屁bot嘛,自欺欺人地说?但既然她开口了,那咱必...

    乂乂又又
  • 程序员如何用技术搞定女朋友情绪?

    有时候,很想关心她,但是你太忙了,以至于她一直抱怨,觉得不够关心她。你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又一次忘记了。你觉得自己很委屈

    养码场
  • 怪不得这位程序员有女朋友,原来是因为这个!

    作者简介:乂乂又又 (WJG),Flutter 开发者。 GitHub:https://github.com/idootop 一、缘起 ? 前几天 女票 ...

    腾讯云serverless团队
  • 【Python】哄女朋友的那些奇技淫巧

    第一个就是我们的pinyin模块了,这个模块骚就骚在可以直接把中文汉字转化成中文的汉语拼音,甚至连第几声发音都可以给你搞出来,具体使用很简单,导入后直接使用ge...

    我被狗咬了
  • 七夕了,不如和程序员谈一场没有BUG的恋爱

    但一直在跟程序员们接触的场主觉得,程序员靠谱,踏实,有耐心,又聪明,绝对是理想男友的首选啊!!!

    养码场
  • 凌晨三点,腾讯鉴黄师的漫漫长夜

    今天,带你认识几位鹅厂男女。 先麻烦你,关掉手边的电灯开关,找个舒适位置坐下,躺着也好。 让我与你说说,凌晨三点的腾讯,这些男男女女与长夜有关的故事。 再牛逼...

    腾讯举报中心
  • 史上最污技术解读,60 个 IT 术语我竟然秒懂了......

    假设你是个妹子...... ? 假设你是个妹子,你有一位男朋友,于此同时你和另外一位男生暧昧不清,比朋友好,又不是恋人。你随时可以甩了现任男友,另外一位马上就能...

    java思维导图
  • 给女朋友做个聊天机器人,这样就能一心写代码了

    作为程序员中的佼佼者,深知有个女友不容易,于是,为了更及时的陪女友聊天回复微信,活学活用的程序员用 Python + itchat 写一个爬虫脚本每天定时给女友...

    秃头哥编程
  • 史上最污技术解读,我竟然秒懂了

    假设你是个妹子,你有一位男朋友,于此同时你和另外一位男生暧昧不清,比朋友好,又不是恋人。你随时可以甩了现任男友,另外一位马上就能补上。这是冷备份。 假设你是个妹...

    企鹅号小编
  • 史上最污技术解读,我竟然秒懂了

    假设你是个妹子,你有一位男朋友,于此同时你和另外一位男生暧昧不清,比朋友好,又不是恋人。你随时可以甩了现任男友,另外一位马上就能补上。这是冷备份。 假设你是个妹...

    前朝楚水
  • 浪漫七夕节|用行动表达爱意 让感情升温

    童话里,小王子问狐狸:“仪式是什么?”狐狸说:“它就是使某一天与其他日子不同,使某一时刻与其他时刻不同”。

    五月君

扫码关注云+社区

领取腾讯云代金券