【초보자용】기념일을 통지하는 LINE bot를 heroku+Node.js로 만든다

개요



이 기사에서는 Heroku와 Node.js를 활용하여 특정 사용자 (소수의 수를 가정)에게 기념일을 알리는 LINE Bot을 만드는 노하우를 소개합니다. 여기서의 통지란, 시간 지정으로 bot로부터 유저에게의 간단한 문자 메세지를 보내는 것을 가리킵니다.

사전 준비 1 LINE bot 채널 준비



LINE Bot을 만들려면 LINE의 Messaging API라는 서비스를 사용합니다.
우선 이 서비스를 이용하기 위한 채널을 작성합니다.
다음을 페이지를 참고에 필요한 정보를 입력하여 진행해 주세요.

htps : //에서 ゔぇぺぺrs. 네. 비 · 그럼 / 드 cs / 메사 긴 g 아피 / 갓찐 g s r d / # % 3 % 83 % 81 % 3 % 83 % 3 % 3 % 83 % 8D % 에 3% 83% 에 B% 에 3% 81% 에 % 에 4% BD% 9C% 에 6% 88% 90

실제 계정과 마찬가지로 아이콘도 설정할 수 있습니다.
여기에서는 모 작품보다 아래와 같은 아이콘을 설정했습니다. 


Messaging API는 bot에서 사용자에게 보내는 메시지(Push)와 사용자가 bot로 보낸 메시지에 대한 응답(Reply)
하지만 이번에 사용하는 것은 Push 쪽입니다.


ぇぺぺrs. 네. 비 · 자 / 세 r ゔ ぃ 세 s / 메사 긴 g 아피 /
더 인용

사전 준비 2 호스팅하는 서버 (Heroku) 준비



그런 다음 bot를 호스팅하는 서버를 준비합니다.
이번에는 무료로 많은 서비스를 사용할 수있는 Heroku를 사용합니다.
Heroku의 기본적인 사용법이나 배포까지의 흐름은, 이하의 기사가 참고가 된다고 생각합니다.

htps : // 이 m / 줄거리 / ms / b2f2 01259238235 187
htps : // 이 m / sh 치 _f / ms / b4b5d830672d908 f4

bot 개발



이번에는 bot에서 메시지를 보내는 것을 상정하고 있기 때문에, 기점은 Heroku의 애드온 기능인 heroku scheduler를 이용하기로 합니다. (자세한 것은 후술)
이 설정은 나중에 할 것입니다, 먼저 알리기위한 프로그램을 나열합니다.
일반적으로 사용하는 index.js와는 별도로 파일을 하나 만듭니다.

htps : // 이 m / n kjm / ms / 38808 bc97d6927837cd

코드를 작성할 때는 Heroku의 환경 변수 설정 등이 있으며, 그 점은 위의 기사를 참고로 했습니다.

sample.js
#!/usr/bin/env node
// モジュールのインポート
const server = require("express")();
const line = require("@line/bot-sdk"); // Messaging APIのSDKをインポート

// パラメータ設定
const line_config = {
    channelAccessToken: process.env.LINE_ACCESS_TOKEN, // 環境変数からアクセストークンセット
    channelSecret: process.env.LINE_CHANNEL_SECRET // 環境変数からChannel Secretをセット
};


// APIコールのためのクライアントインスタンスを作成
const bot = new line.Client(line_config);

      main();//メインとなる処理を適当に

//メッセージを送る処理
      function sendMessage(message){
          console.log("message:" + message);
          bot.pushMessage("XXXXXXXXXXXXXXXXXXXXXXXXXX",{  //送りたい相手のUserID
            type:"text",
            text: "今日ハ " + message + "ダゼェ!"
                      })

      }

    function main() {
      //現在日付の取得
      var today = new Date();
      var month = today.getMonth()+1;
      var date = today.getDate();
      var message = "";  //デフォルトのメッセージをなにか入れたい場合はここに入れる。


      //送るべきメッセージの判定
      //XXの誕生日
      if (month == 7 & date == 30 ) {
        message = "XXの誕生日"
        sendMessage(message);
      }
      //入籍届けを出した日
      else if (month == 8 & date == 11 ) {
        message = "入籍届けを出した日"
        sendMessage(message);
      }     
      //該当しない日は何もしない
      else {

      }
    }

이번은 간이적인 만들기로 DB와 같은 것을 갖게 하고 있지 않기 때문에, 일자의 판정도 메세지 송신처의 ID도 하드 코드 하고 있습니다.

package.json에 Job 추가



heroku scheduler에게 킥 받기위한 작업과 실제로 움직이는 js 파일을 package.json으로 연결합니다.

package.json
{
  "name": "line_botXXXXX",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "job-push-sample": "node sample.js"
  },
  ...

스케줄러 설정



스케줄러는 Heroku의 애드온 기능으로 일시나 매시의 실행이면, 이 기능으로 충분합니다.
※세세한 설정은 할 수 없기 때문에, 그 근처까지 실장하고 싶은 분은 다른 서비스를 사용하는 편이 좋을 것입니다
실제의 설정은 이하의 기사를 참고로 했습니다.

htps : // 코 m / 타로 _ 만 /

실제 설정 화면은 다음과 같습니다.
npm run 「package.json으로 지정한 job」이라고 하는 기재의 방법입니다.
※시간은 표준시에서의 설정 밖에 할 수 없는 점에 요주의.


설정은 이상입니다!
실제로 지정된 사용자의 라인에 메시지가 날아가는 것을 확인할 수 있었습니까?

요약



라인은 생활속에 침투하고 있는 일도 있어, 아이디어와 궁리 나름으로 재미있을 수 있을 것 같네요.
앞으로도 가능성을 찾아 가고 싶습니다.

좋은 웹페이지 즐겨찾기