一、背景概述
上一篇文章搞定了蘋(píng)果健康應(yīng)用里面的存量數(shù)據(jù)的導(dǎo)出及轉(zhuǎn)換格式倒入自己的維格表格(云端數(shù)據(jù)庫(kù)),本篇完成每天新記錄的健康數(shù)據(jù)通過(guò)【快捷指令】自動(dòng)化執(zhí)行上傳同步到維格表格。

本篇主要內(nèi)容:
1、通過(guò)維格表格標(biāo)準(zhǔn)API接口編寫(xiě)一個(gè)快捷指令的思路
2、實(shí)現(xiàn)批量蘋(píng)果健康數(shù)據(jù)每天自動(dòng)化同步到維格表
二、準(zhǔn)備內(nèi)容
快捷指令app
蘋(píng)果健康app
ios手機(jī)一臺(tái)
建立好的健康指標(biāo)專用維格數(shù)據(jù)庫(kù)
三、過(guò)程記錄
1)了解維格API與快捷指令URL組件
在維格API里面咱們只需要用到這個(gè)add新增數(shù)據(jù)這個(gè)接口就行,四部分對(duì)應(yīng)內(nèi)容如圖片所示對(duì)應(yīng)。
什么是token,是你維格賬戶的唯一密鑰,可以當(dāng)作是往里面添加數(shù)據(jù)的進(jìn)門(mén)鑰匙。所以這塊我單獨(dú)拿一個(gè)變量進(jìn)行了存儲(chǔ),方便把快捷指令分享給他人的時(shí)候快速直接復(fù)用。
data是顧名思義就是要上傳的數(shù)據(jù)內(nèi)容部分,維格限制了一次最多只能新增10條,咱們就建立一個(gè)10條內(nèi)容的文本進(jìn)行賦值就行。在執(zhí)行接口請(qǐng)求的時(shí)候需要帶上。
理解了這個(gè)關(guān)鍵組件使用就可以做很多自己的玩法研究了。

2)設(shè)計(jì)編寫(xiě)快捷指令過(guò)程及思路
第〇步、驗(yàn)證官方API的有效性
避免做無(wú)用功,第一步永遠(yuǎn)是先自己測(cè)試一下官方給的接口是否能調(diào)通,上網(wǎng)隨便搜一個(gè)在HTTP在線調(diào)試工具,也是按請(qǐng)求地址、header、data三部分把內(nèi)容填進(jìn)去。
發(fā)送請(qǐng)求后,獲得反饋狀態(tài)碼為200表示請(qǐng)求指令執(zhí)行成功。同時(shí)也會(huì)返回對(duì)應(yīng)添加內(nèi)容的一些其他例如添加時(shí)間、自增序號(hào)之類的屬性字段。
如果返回狀態(tài)碼不是200,可以根據(jù)官方的手冊(cè)、聯(lián)系客服以及自己查看代碼格式等形式找到問(wèn)題(我就多了一個(gè)逗號(hào)報(bào)錯(cuò)半天),減少后期在快捷指令中出現(xiàn)問(wèn)題的風(fēng)險(xiǎn)。

第一步、獲取正確的健康樣本數(shù)據(jù)
因?yàn)槟康墓δ芊浅C鞔_,就是要做一個(gè)每天晚上同步手機(jī)里的健康數(shù)據(jù)的自動(dòng)化捷徑。所以取到正確健康數(shù)據(jù)很關(guān)鍵。然后才是把數(shù)據(jù)上傳等操作。
我是之前在寫(xiě)格志日記就熟練使用這部分的健康數(shù)據(jù)查找使用了,但是不妨記錄一下思路。
1、先在蘋(píng)果健康中找到想要記錄的身體指標(biāo),查看所記錄的數(shù)據(jù)詳情。
以睡眠為例子,里面都是一段一段的持續(xù)時(shí)間。
2、所以第二個(gè)就是從樣本數(shù)據(jù)中獲取持續(xù)時(shí)間
例如步數(shù)就是獲取值、心率也是獲取值
3、對(duì)獲取的數(shù)組內(nèi)容做預(yù)處理
睡眠就是把各段睡眠持續(xù)時(shí)常做累加即可,但是最高心率就是取最大值,最低心率就是取最小值。
4、對(duì)獲取的數(shù)據(jù)做單位轉(zhuǎn)換
大部分健康數(shù)據(jù)都可以通過(guò)累加綜合等方式就能直接使用,但是睡眠需要做單位轉(zhuǎn)換。
把獲得的持續(xù)時(shí)間觀察一下就知道是多個(gè)以秒為單位的時(shí)間。
從秒的數(shù)值轉(zhuǎn)換為x小時(shí)x分。我用了一個(gè)笨辦法,先把累加計(jì)算的結(jié)果除3600,取整數(shù),就是小時(shí)數(shù)然后設(shè)定小時(shí)變量,完了再用除3600的結(jié)果減去設(shè)定變量的小時(shí)變量就能得到0.幾的小時(shí)直接再乘一個(gè)60就能得到分鐘數(shù),再設(shè)定一個(gè)分鐘變量。2個(gè)變量數(shù)文本一拼就是昨晚的睡眠數(shù)據(jù)了。
5、最后一直調(diào)整到能得到想要形態(tài)的結(jié)果數(shù)據(jù)
然后按同樣的方法嘗試其他類型指標(biāo)的提取方式或辦法,目測(cè)應(yīng)該沒(méi)有比睡眠時(shí)長(zhǎng)更麻煩的了,其他的都很簡(jiǎn)單。

第二步、實(shí)現(xiàn)一個(gè)最小樣本數(shù)據(jù)上傳
有了前兩步的積累就能實(shí)現(xiàn)一次快速的單健康數(shù)據(jù)同步上傳了。
把從健康中獲得數(shù)據(jù)結(jié)果賦值一個(gè)變量,然后直接填到對(duì)應(yīng)的URL數(shù)據(jù)中,運(yùn)行快捷指令。查看返回結(jié)果是不是200,同時(shí)登陸PC端的維格數(shù)據(jù)表查看是否確實(shí)數(shù)據(jù)更新到位。沒(méi)問(wèn)題就實(shí)現(xiàn)了一個(gè)最小MVP。
第三步、編寫(xiě)完整的快捷指令程序
這部分就比較枯燥了因?yàn)榻涌谙拗剖桥啃略鲎疃?0條,所以咱們就充分利用十條,創(chuàng)建10個(gè)健康數(shù)據(jù)獲取的程序塊,分布賦值指標(biāo)1-10,然后data數(shù)據(jù)文本也擴(kuò)充為10條記錄。
之前有一個(gè)小偉大神開(kāi)發(fā)的快捷指令復(fù)制捷徑,現(xiàn)在已經(jīng)失效了,只能用目前我能找到最快的方法:用IPAD編寫(xiě),通過(guò)右側(cè)收藏列表,快速拖拽需要的組件到程序序列中,但是偏偏ipad端又是沒(méi)有健康app的,最后還得回到手機(jī)端再挨個(gè)設(shè)置里面的細(xì)項(xiàng),大概花了1小時(shí)做這個(gè)事。

第四步、優(yōu)化快捷指令程序使用體驗(yàn)
1、提取賦值變量做公共詞典
在第三步我所有的指標(biāo)名稱都是直接寫(xiě)死在data的文本框里面的,如果要修改起來(lái)是比較麻煩的,包括請(qǐng)求地址和token其實(shí)都是自定義文本的賦值,我就干脆設(shè)置了一個(gè)詞典,然后在data文本中直接使用詞典中指定鍵值。在開(kāi)篇完成相應(yīng)的定義,方便自己清晰總覽同時(shí)被他人個(gè)性化使用。

2、給運(yùn)行結(jié)果添加提醒反饋
簡(jiǎn)單寫(xiě)一個(gè)如果否則的判斷程序,對(duì)提交URL請(qǐng)求后返回的內(nèi)容做一個(gè)展示。如果成功直接告訴已經(jīng)上傳成功的結(jié)果,失敗往前臺(tái)透出相應(yīng)的錯(cuò)誤狀態(tài)碼詳情及說(shuō)明。
方便使用中定位問(wèn)題。

3)設(shè)置自動(dòng)化運(yùn)行捷徑
這部分應(yīng)該還有坑,因?yàn)楸『山】刀际?2點(diǎn)定時(shí)同步數(shù)據(jù)到蘋(píng)果健康的,也就是12點(diǎn)之后才能拿到前一天的數(shù)據(jù),所以我取的都是最近1天的數(shù)據(jù),而不是「在今天」的數(shù)據(jù),然后配合運(yùn)動(dòng)手表的健康運(yùn)動(dòng)的app,需要每天打開(kāi)之后才能通過(guò)藍(lán)牙同步數(shù)據(jù),需要在往維格上傳之前先把手表的數(shù)據(jù)同步都手機(jī)上先,可以做成一連串的自動(dòng)開(kāi)啟應(yīng)用,再關(guān)閉,最后再開(kāi)同步。
還經(jīng)常有奇怪的地方會(huì)卡住。等我研究透再稿一篇好了。實(shí)在不好自動(dòng)化每天早上起床關(guān)掉鬧鐘后,手動(dòng)點(diǎn)擊一下執(zhí)行同步健康數(shù)據(jù)的快捷指令也行,剛好拿到完整的睡眠數(shù)據(jù)。

四、心得體會(huì)
1、我會(huì)把寫(xiě)完的快捷指令分享出來(lái),關(guān)注我賬號(hào)私信回復(fù)關(guān)鍵詞“維格健康”給您發(fā)送本文完成的快捷指令的下載鏈接。您可以個(gè)性化編輯修改為己所用。
2、除了這種定期同步每天會(huì)產(chǎn)生的健康指標(biāo)之外,還有一些例如不定期的測(cè)尿酸,測(cè)血壓,體重,體脂及運(yùn)動(dòng)記錄也可以用類似的快捷指令組件完成數(shù)據(jù)的記錄,但沒(méi)必要每日同步上傳了。
3、有了存量健康數(shù)據(jù)、及每天同步的新數(shù)據(jù),下一步就可以搭建「健康指標(biāo)數(shù)字駕駛艙」。
關(guān)于作者
曾創(chuàng)業(yè)四年,期間全年無(wú)休住辦公室,工作內(nèi)容涵蓋了弱電、開(kāi)發(fā)、產(chǎn)品、UI、測(cè)試、運(yùn)營(yíng)、售前、售后、項(xiàng)目管理、財(cái)務(wù)、人力等填坑經(jīng)歷,企業(yè)最高估值過(guò)千萬(wàn)。
變身打工人后,充分發(fā)揮分身能力,投身興趣;曾兼任新華三大學(xué)《時(shí)間管理》課程內(nèi)訓(xùn)講師。
現(xiàn)于500強(qiáng)能源企業(yè)中任職IT產(chǎn)品經(jīng)理,同是少數(shù)派matrix簽約作者。