教你做Line鬧鐘

starkbl發表於2021-09-09

第零步:環境安裝

卡米狗系列文windows安裝流程

ruby安裝

rails安裝

heroku & git安裝

line bot申請()

相關檔案參考

ruby/rails安裝

heroku安裝

git相關

第一步:建立專案

首先你要找到一個放專案的資料夾,然後開啟對應的小黑框,輸入以下指令:

rails new alarm_demo

然後進入專案:

cd alarm_demo

第二步:安裝套件

在rails中,可以透過修改Gemfile來安裝套件,也可以使用指令來幫我們修改Gemfile,這次教怎麼用指令安裝套件。

bundle add line-bot-api

第三步:製作Service

請在app資料夾下新增services資料夾,然後在services資料夾下新增alarm_service.rb檔案。

然後輸入以下程式碼:

require 'line/bot'

class AlarmService

def client

@client ||= Line::Bot::Client.new do |config|

config.channel_secret = '你的line channel secret'

config.channel_token = '你的line channel token'

end


end

def run

message = {

type:“text”,

text:“現在時間:#{Time.current}趕快起床吧”

}

client.push_message('你的line user id',message)

end


end

如果你還沒有註冊line bot,你可以到line developer後臺註冊一個,你可以在line developer後臺找到以下資訊:

你的line channel secret

你的line channel token

你的line user id(通常在頁面的最下方)

然後填入程式碼中。

第四步:測試Service

在你的小黑框(需在專案資料夾下)輸入以下指令:

rails c

進入rails console後,輸入以下程式碼:

AlarmService.new.run

如果你看到的是以下響應,那麼你應該會在line bot那邊收到資訊了。

=> #<Net::HTTPOK 200 OK readbody=true>

如果你看到的是以下響應,那代表你的line channel token或者line channel secret打錯了。

#<Net::HTTPUnauthorized 401 Unauthorized readbody=true>

如果你發現你打錯了,在你修改程式碼之後,你可能會需要輸入exit離開後再重新rails c進入rails console,否則你的修改可能無法正確載入。

如果你看到的是以下響應,那代表你的line user id或者message打錯了。

#<Net::HTTPBadRequest 400 Bad Request readbody=true>

請詳加檢查。

第五步:建立Task

回到小黑框,輸入以下指令建立rake tas

rails g task line alarm

建立好了之後你會發現在你的專案資料夾下的lib/tasks下多了一個檔案line.rake,其內容如下:

namespace:line do

desc“TODO”

task alarm::environment do

end


end

我們將他修改成這樣:

namespace:line do

task alarm::environment do

AlarmService.new.run

end


end

其實這就是把我們剛剛寫好的程式填進去而已。

第六步:測試Task

回到小黑框,輸入以下指令:

rails line:alarm

或者輸入

rake line:alarm

這就是rake task,他的功能其實就是幫我們開啟rails c之後再執行我們想要執行的程式。

有了rake task之後就能夠使用排程去觸發line bot了。

第七步:釋出到Heroku()

在釋出之前,因為Gemfile沒有sqlite3,所以我們需要調整一下Gemfile,請將以下程式:

# Use sqlite3 as the database for Active Record

gem 'sqlite3'

改為

# Use sqlite3 as the database for Active Record

group:development,:test do

gem 'sqlite3'

end

group:production do

gem 'pg'

end

建立一個heroku新專案:

heroku create你的專案名稱

其中,專案名稱只能用英文、數字和減號。好了之後上傳程式碼:

git add .

git commit -m“line alarm”

git push heroku master

第八步:測試Heroku

上傳完成後使用以下指令來測試:

heroku run rails line:alarm

如果有收到來自line bot的資訊就表示成功了

第九步:安裝Heroku排程器

在Heroku上要定期執行程式的話,需要安裝addons,我們需要的addons叫做scheduler,他是免費的,所以可以安心使用。

在專案資料夾下使用以下指令進行安裝:

heroku addons:create scheduler:standard

可以輸入以下指令檢視說明檔案(全英文)

heroku addons:docs scheduler

第十步:設定Heroku排程

安裝好了之後我們需要設定排程,Heroku其實有做讓我們設定排程的後臺,輸入以下指令開啟後臺。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3705/viewspace-2819317/,如需轉載,請註明出處,否則將追究法律責任。

相關文章