Ich dachte, es wäre praktisch, wenn es einen BOT gäbe, der mich jeden Morgen über die Müllentsorgung informiert. Ich habe es nach dem Studium geschafft.
Ruby Ruby On Rails6 Heroku LINE Messager API
Ich werde dies weglassen, weil andere Leute es im Detail gepostet haben.
Referenzartikel
https://qiita.com/y428_b/items/d2b1a376f5900aea30dc
https://qiita.com/natsukingdom-yamaguchi/items/e84dffdd90d7f5ef8224
Fügen Sie eine Aufgabe hinzu und senden Sie eine Nachricht zu einem festgelegten Zeitpunkt.
Eine Aufgabe erstellen
$rails g task reminder_task
Dann generieren Sie einen Controller
$rails g controller webhook trash
lib/tasks/reminder_task.rake
namespace :reminder_task do
desc "Das Thema der Aufgabe hier"
task :trash => :environment do
webhook = WebhookController.new
puts webhook.trash
end
end
app/controllers/webhook_controller.rb
def trash
puts "Botschaft"
end
Überprüfen Sie hier, ob es der Rechenaufgabe hinzugefügt wurde
$ rake -T
rake reminder_task:Trash-Task-Thema
Wenn Sie bestätigen können, dass es hinzugefügt wurde
$ rake reminder_task:trash
OK, wenn [Nachricht] gesendet wird
Wenn Sie PUSH-Nachrichten verwenden möchten, müssen Sie Umgebungsvariablen festlegen.
Unten finden Sie Umgebungsvariablen. https://qiita.com/yuichir43705457/items/7cfcae6546876086b849 https://qiita.com/noraworld/items/bfa80811c9e30b4474af
Einstellmethode
Füge dotenv zu gem hinzu
gem 'dotenv-rails'
Erstellen Sie eine ENV-Datei im Stammverzeichnis des Anwendungsverzeichnisses (Erstellt, wo es eine App oder Gemfile gibt)
Stellen Sie verschiedene LINE-Kanäle ein
/.env
LINE_CHANNEL_SECRET='xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
LINE_CHANNEL_TOKEN='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
LINE_USER_ID='zzzzzzzzzzzzzzzzzzzzzz'
app/controller/webhook_controller.rb
class WebhookController < ApplicationController
require 'line/bot'
def trash
message = {
"type": "text",
"text": WebhookController.contents
}
client = Line::Bot::Client.new { |config|
config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
}
response = client.push_message(ENV["LINE_USER_ID"], message)
end
def self.contents
date = Date.today
case date.strftime('%a')
when "Mon"
"Heute ist Montag, Burning Garbage Day!"
when "Tue"
"Keiner!"
when "Wed"
"Heute ist Mittwoch, der Tag des nicht brennbaren Mülls und der Pappe"
when "Thu"
"Heute ist Donnerstag, ein normaler Mülltag!"
when "Fri"
"Heute ist Freitag, der Tag der Dosen, Flaschen und Haustierflaschen!"
when "Sat"
"Müde für eine Woche! Keine heute!"
else
""
end
end
end
Drücken Sie zu Heroku und richten Sie einen Planer ein. Sie sollten eine Nachricht erhalten.
Der Service, den Sie zum ersten Mal nach dem Studium von Ruby gemacht haben? Daher scheint es viele Fehler zu geben. In diesem Fall wäre ich Ihnen dankbar, wenn Sie darauf hinweisen könnten!
(Vielen Dank für die Referenzartikel.)
Recommended Posts