(接續) 前一篇https://noise.cash/post/1k8q9gjx 如何製作Line Notify機器人 今天繼續進行Line Notify機器人的第二部分:如何抓取資料&定時觸發功能 先說一下感謝 @kunic 大大提供這個方式也可以做成discord機器人 https://noise.cash/post/lmp45g8p 因此今天的第二部分應該可以同時適用於這兩部分,算是一魚兩吃了XD ---- 正文開始 ---- 步驟一(圖一)、修改google試算表中分頁的名字,如圖中這個分頁叫「noise」。然後選擇「擴充功能」→「Apps Script」,進入到昨天程式的部分。 步驟二(圖二)、修改昨天mytest()裡藍色框框部分,大家可以直接貼上XD function mytest() { var token = "###############剛剛拿到的權杖################" var s1=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("noise"); s1.getRange("A1").setValue('=GoogleFinance("BTCUSD")'); s1.getRange("A2").setValue('GoogleFinance("TPE:2330")'); Utilities.sleep(1000); var temp_value1 = s1.getRange("A1").getValue(); var temp_value2 = s1.getRange("A2").getValue(); var message = "比特幣價格: "+temp_value1+";台積電股價: "+temp_value2; sendline(message,token); } 基本上增加了七行: 新增的第一行是定義noise這個分頁叫做s1; 新增的第二行與第三行在s1這個分頁裡面的儲存格A1與A2分別填入了「=GoogleFinance("BTCUSD")」與「GoogleFinance("TPE:2330")」兩個字串; 需要注意的是外面的是單引號表示您填的字串;裡面的雙引號是GoogleFinance函數的使用規則。然後另外一點是可以看到A1裡面有填多一個等號;但我在A2中沒有填那個等號(等等就知道為什麼了) 新增的第三行是等待1秒鐘; 新增的第四、五兩行是temp_value1和temp_value2是分別讀取A1和A2裡的值;以及最後 新增的第七行是把那些字串拼成一句message再透過前一篇的方法印出去。 步驟三(圖三)、執行結果如圖 我們可以看到A1的儲存格在公式欄裡就真的是「=GoogleFinance("BTCUSD")」,然後試算表也正確地回報出現在的價格;但是在A2的儲存格中缺少了那個等號,因此試算表忠實地把「GoogleFinance("TPE:2330")」文字填進去,導致最後印出文字的時候就會印出這種不如預期的結果XD 步驟四(圖四)、設定定期觸發 視窗最左邊有一個時鐘的按鈕,點進去就可以設定觸發的條件,最容易理解(也就是本文示範的)就是定時觸發,設定如最後一張圖那樣就是每分鐘觸發一次mytest()這個函數。 ps. 需要特別注意的是照官方說明,一個Line Notify機器人權杖每小時最多只能收999次訊息,所以不要設得太密集以防被ban帳號啊XD
2 comments
推!
太強大了