Line Bot으로 단어장을 만들어 보았습니다.

개요



line bot과 google spreadsheet의 매크로 기능 (GAS)을 사용하여 단어장을 만들었습니다.
매우 간단한 단어장이지만 쉽게 만들 수 있으므로 사용하고 싶은 분은 꼭 복사하여 사용해보십시오.

만든 계기



자격 공부시 참고서를 내지 않고 기차로 휴대폰으로 공부하고 싶었기 때문입니다.
또 자격 공부의 앱 등은 있습니다만, 쓰기가 나쁘고, 스스로 커스터마이즈 할 수 있는 단어장을 원했기 때문입니다.

필요한 환경



・line bot용의 channel
· google 계정
* 상기는 둘은 웹에서 조사하면 쉽게 작성할 수 있습니다.

작성 절차



1, google spreadsheet에 프로그램 만들기



google spreadsheet를 열고 도구 → 스크립트 편집기의 단계로 스크립트 편집기
열어주세요.


스크립트 편집기를 열면 아래의 프로그램 코드를 복사하여 붙여넣으십시오.

wordbook.gs
// LINE developersのメッセージ送受信設定に記載のアクセストークン
var ACCESS_TOKEN = 'お使いのline botのACCESS_TOKENを入れてください。';

function doPost(e) {
  // WebHookで受信した応答用Token
  var replyToken = JSON.parse(e.postData.contents).events[0].replyToken;

  // ユーザーのメッセージを取得
  var userMessage = JSON.parse(e.postData.contents).events[0].message.text;

  // 応答メッセージ用のAPI URL
  var url = 'https://api.line.me/v2/bot/message/reply';

  //lineに出力する単語
  var out;

  //回答を出力する場合userMassage→Answerに変換する(userMassageのaを取り除く)
  var Answer;

  // スプレッドシートIDを取得
  var spreadsheet = SpreadsheetApp.openById('google spreadsheetのIDを入れてください');

  // シート名を取得
  var sheet = spreadsheet.getSheetByName('google spreadsheetのシート名を入れてください');

  if ( userMessage.match(/a/) || userMessage.match(/A/)) {
    Answer = userMessage.substr(1);
    if (isNaN(Answer)){
      out = "正しく文字を入力してください";
    }else{
      // lineに出力する単語を指定する
      out = sheet.getRange(Answer,2).getValue();
    }
    }else{ 
    //数値がどうか確認する
    if (isNaN(userMessage)){
      out = "正しく文字を入力してください。"
    }else{
      // lineに出力する単語を指定する
      out = sheet.getRange(userMessage,1).getValue();
    }
  }

  if (out == ""){
     out = "その列番にに単語はありません。";
  }

  UrlFetchApp.fetch(url, {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + ACCESS_TOKEN,
    },
    'method': 'post',
    'payload': JSON.stringify({
      'replyToken': replyToken,
      'messages': [{
        'type': 'text',
        'text': out,
      }],
    }),

    }); 
  return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON)
}



* ACCESS_TOKEN, google spreadsheet의 ID, 시트 이름은 자신을 입력하십시오.
*google spreadsheet의 ID는 사용 중인 spreadsheet URL에서 얻을 수 있습니다.
google spreadsheet URL = https://docs.google.com/spreadsheets/d/google spreadsheet의 ID/...

2, 프로그램 공개



프로그램을 만든 후 아래 단계에 따라 프로그램을 게시합니다.

먼저 스크립트 편집기 화면에서 게시 → 웹 애플리케이션으로 배포를 클릭합니다.


웹 애플리케이션으로 배포를 클릭하면 아래와 같은 창이 표시됩니다.
공백에 적절한 프로젝트 이름을 입력하고 OK를 누릅니다.


OK 버튼을 누르면 아래의 윈드 화면이 표시되므로,
'Who has access to the app'을 Anyone,even anonymous로 설정하고 Deploy 버튼을 누릅니다.
* 편집 후 다시 배포하는 경우 프로젝트 버전을 새로 설정합니다.


Deploy 버튼을 누르면 아래의 창이 표시되므로 허가를 확인하십시오.


※허가를 확인을 누른 후 아래의 윈드가 표시되면, 상세→사용하는 계정을 선택→(안전하지 않은 페이지)로 이동→허가의 순서로 허가해 주세요.


허가가 되면 URL이 발행되므로, line bot의 webhook에 발행된 URL을 등록해 주세요.
※URL을 사용할 수 있게 되기까지 몇 시간 걸리므로, 사용할 수 있게 될 때까지 참을성있게 기다려 주세요.



사용할 라인 봇 채널 설정



Messaging API settings 화면에서 아래와 같이 설정합니다.
· 응답 메시지 → 꺼짐
・webhook→온
· webhook URL → 방금 발행 한 URL

※webhook URL을 등록하면, 확인 버튼을 눌러 주세요. URL을 사용할 수 있는 상태라면 성공해야 합니다.
반대로 실패하면 아직 URL을 사용할 수 없습니다.
※상기의 설정 방법을 모르는 경우는 web로 조사해 주시면 곧 나옵니다.

앱을 사용해보기



google spreadsheet에 한 줄 이름에 단어를, 두 줄 이름에 그 대답을 넣습니다.

google spreadsheet에 단어와 답변을 입력하면 line에 단어와 답변을 출력해 봅니다.
line에 단어를 출력하고 싶은 경우는 그 단어의 열 번호를 입력해 주세요.
답변을 출력하고 싶은 경우는 열번의 뒤에 a를 붙여 입력해 주세요.


마지막으로



이번에 소개한 bot은 매우 간이적이므로, 꼭 스스로 어레인지해 보세요.

좋은 웹페이지 즐겨찾기