J'ai pensé que ce serait pratique s'il y avait un BOT qui m'informerait de l'enlèvement des ordures chaque matin. Je l'ai fait après mes études.

Ruby Ruby On Rails6 Heroku LINE Messager API
Je vais omettre cela parce que d'autres personnes l'ont publié en détail.
Article de référence
https://qiita.com/y428_b/items/d2b1a376f5900aea30dc
https://qiita.com/natsukingdom-yamaguchi/items/e84dffdd90d7f5ef8224
Ajoutez une tâche et envoyez un message à une heure fixe.
Créer une tâche
$rails g task reminder_task
Puis générez un contrôleur
$rails g controller webhook trash
lib/tasks/reminder_task.rake
namespace :reminder_task do
  desc "Le sujet de la tâche ici"
  task :trash => :environment do
    webhook = WebhookController.new
    puts webhook.trash
  end
end
app/controllers/webhook_controller.rb
  def trash
    puts "message"
  end
Vérifiez s'il est ajouté à la tâche de râteau ici
$ rake -T
rake reminder_task:thème de la tâche corbeille
Si vous pouvez confirmer qu'il a été ajouté
$ rake reminder_task:trash
OK lorsque [Message] est envoyé
Si vous souhaitez utiliser des messages PUSH, vous devez définir des variables d'environnement.
Voir ci-dessous pour les variables d'environnement. https://qiita.com/yuichir43705457/items/7cfcae6546876086b849 https://qiita.com/noraworld/items/bfa80811c9e30b4474af
Méthode de réglage
Ajouter dotenv à la gemme
gem 'dotenv-rails'
Créer un fichier .env dans le répertoire racine du répertoire de l'application (Créé là où il y a une application ou un gemfile)
Définir divers canaux LINE
/.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"
            "Aujourd'hui, c'est lundi, jour des déchets brûlants!"
        when "Tue"
            "Aucun!"
        when "Wed"
            "Aujourd'hui, c'est mercredi, jour des ordures et du carton incombustibles"
        when "Thu"
            "Aujourd'hui, c'est jeudi, un jour normal des ordures!"
        when "Fri"
            "Aujourd'hui, c'est vendredi, jour des canettes, des bouteilles et des bouteilles en PET!"
        when "Sat"
            "Fatigué depuis une semaine! Aucun aujourd'hui!"
        else
            ""
        end
    end
  end
Poussez sur Heroku et configurez un planificateur et vous devriez recevoir un message.
Le service que vous avez fait pour la première fois après avoir étudié le rubis? Par conséquent, il semble qu'il y ait de nombreuses erreurs. Dans ce cas, je vous serais reconnaissant de bien vouloir le signaler!
(Merci pour les articles de référence.)
Recommended Posts