uniCloud基礎練習---使用云開發每天定時向女朋友發送短信

      網友投稿 993 2025-04-03

      上次我們使用云函數定時向女朋友推送郵件

      使用云函數每天定時向女朋友發送郵件推送天氣

      代碼已放置github https://github.com/dmhsq/uniCloud-demo

      開發工具 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) }) }) }

      uniCloud基礎練習---使用云開發每天定時向女朋友發送短信

      如果是從數據庫獲取 就獲取后根據當天為周幾 就返回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點發第一個 下周四發完 所以我們新建一個數據表

      只需要一個數據

      這里的_id拿到

      每次發送后都會獲取下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" } };

      頁面代碼

      這樣就可以自定義情話了哈哈 然后短信會發送以這個數據庫里面的情話

      自定義情話發送代碼

      代碼和數據庫的一樣 因為本身就是修改數據庫的情話

      定時每天早上六點發送

      當你開發完云函數(右鍵點擊云函數選擇上傳部署) 后上傳部署

      打開控制臺 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 * * * *" } ]

      愛她 就每天早上六點告訴他今天的天氣,再來句情話或者小故事

      當然你也可以定時晚上發送 睡前小故事

      大學之道亦在自身,努力學習,熱血青春

      數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎么組合圖片和藝術字(圖片與藝術字進行組合)
      下一篇:如何將wps2016文本快速轉換為表格
      相關文章
      91午夜精品亚洲一区二区三区| 国产亚洲综合一区二区三区| 久久综合日韩亚洲精品色| 亚洲人成电影在线观看青青| 亚洲中久无码不卡永久在线观看| 亚洲AV无码久久精品成人| 亚洲中文字幕无码mv| 亚洲日韩aⅴ在线视频| 亚洲AV综合永久无码精品天堂| 亚洲成人一区二区| 国产精品亚洲专区在线观看| 亚洲另类古典武侠| 国产亚洲精品自在久久| 中文字幕亚洲无线码| 中文字幕专区在线亚洲| 亚洲人成无码www久久久| 亚洲国产日韩在线观频| 亚洲无码精品浪潮| 国产亚洲精品国看不卡| 久久乐国产精品亚洲综合| 中文字幕日韩亚洲| 亚洲色无码一区二区三区| 国产亚洲精品美女久久久| 亚洲av最新在线网址| 亚洲色四在线视频观看| 激情内射亚洲一区二区三区| 亚洲欧洲日产国码在线观看| 亚洲va在线va天堂va手机| 亚洲性无码AV中文字幕| jzzijzzij在线观看亚洲熟妇| 日本亚洲中午字幕乱码| 亚洲黄片毛片在线观看| 国产亚洲欧洲Aⅴ综合一区| 亚洲区小说区激情区图片区| 亚洲国产精品无码成人片久久| 亚洲精品高清久久| 亚洲激情黄色小说| 国产99在线|亚洲| MM1313亚洲国产精品| 国产精品亚洲产品一区二区三区 | 亚洲中文字幕无码不卡电影|