接續前兩篇的教學文 https://noise.cash/post/1k8q9gjx https://noise.cash/post/lr6zwrj6 今天主要是介紹google試算表的函數,FTX的利率每小時會在這個網頁更新 https://ftx.com/api/spot_margin/history 因此只要能夠抓到google試算表,然後再想辦法透過上述的方法傳給機器人印就能收功了XD 今天的範例修改mytest()函數,使得可以從FTX網頁抓取BCH的放貸利息資訊,剩下看要定時提醒還幹麻的就都好弄了。 步驟一(圖一)、 繼續昨天的mytest()函數及noise分頁,我再修改成 function mytest() { var token = "###############剛剛拿到的權杖################" var s1=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("noise"); s1.getRange("A1").setValue('=IMPORTDATA("https://ftx.com/api/spot_margin/history","#")'); Utilities.sleep(1000); var temp_value1 = s1.getRange("F25").getValue(); var message = "BCH利率為"+(temp_value1*24*365*100).toFixed(3); sendline(message,token); } 可以看到在每次執行mytest()的時候就會對A1儲存格輸入「=IMPORTDATA("https://ftx.com/api/spot_margin/history","#")」,也就是把上述的網頁資料抓到儲存格A1。 步驟二、 參考同一張圖,綠色字的儲存格就是需要手動輸入函數的地方…直接複製到儲存格裡就行了。 A2輸入「=SUBSTITUTE(A1,"""","")」 A3輸入「=SUBSTITUTE(A2,"{","")」 A4輸入「=SUBSTITUTE(A3,"}","")」 A5輸入「=transpose(split(A4,","))」 說明一下, 儲存格A2的意思就是把儲存格A1的資料砍掉「"」 儲存格A3的意思就是把儲存格A2的資料再砍掉「{」 儲存格A4的意思就是把儲存格A3的資料再砍掉「}」 儲存格A5的意思就是把儲存格A4的資料每遇到「,」,就往下開一個新的儲存格 (所以就被展開成A6,A7,A8,A9,...) E5輸入「=split(A5,":")」 E6輸入「=split(A6,":")」 ... 這可以用滑鼠拉XD 儲存格E5的意思就是把儲存格A5的資料每遇到「:」,就往右開一個新的儲存格 步驟三、 最後就會變成圖中的表格XD 儲存格F25就是BCH的小時利率了,記得要換算成年利率,所以在mytest()裡組字串的時候要乘24乘365再乘100%...因此mytest()裡面我寫成 var message = "BCH利率為"+(temp_value1*24*365*100).toFixed(3); 最後to.Fixed(3)的意思是取到小數點第3位。 ---- 這是土砲版本…相較之下還有可以直接寫在google app scripts裡高級的抓json的方法,原理和這篇類似所以想說先介紹土砲版,等各位噪友們理解字串在幹麻後再分享。
6 comments
怎麼這陣子這麼多程式教學文XD
我就想說一次打完整=w= 這樣算是我帶起來優質風氣嗎(?)
不過我覺得第一個應該是 @vcckvv ? noise.cash/post/jgj3kn7sr8n5
啊那個是真的程式=w= 我的只是小小script而已QQ
這要花好多時間學習了= _=
所以才獨立成一篇= =a