🛳️

ドイツ語を入力したら、英語と日本語が翻訳されて返ってくるLINE botをGASで無料で作るよ

2022/01/06に公開

はじめに

ドイツのベルリンに2021年から住んでいます。仲条と申します。
2022年1月から語学学校でドイツ語のA1(超初心者コース)を学び始めたのですが、新しい単語が多くて覚えられないし、文章になったらもう読めないし聞き取れないしで、授業の進行について行くのが大変... こうなったらテクノロジーの力で学習効率を上げるしかありません!
いつも分からない単語や文章はGoogleで「translate」と検索して翻訳しているんですが、何度も同じ単語をググっている気もします...
なので、今回は日本人必須のチャットアプリのLINEでドイツ語を入力したら、Googleで英語と日本語の翻訳が返ってくるLINEの自動ボットを作ります。いつ何を調べたかも残しておいて後で復習もできるように、スプレッドシートに履歴を残します。日本語で翻訳されるより、単語も文法も似ていてる英語で返ってきた方が分かりやすいため英語でも翻訳を入れています。これでもうドイツ語が怖くなくなるぜ!

完成したLINE Bot

https://lin.ee/eBoswCy

解説動画

https://youtu.be/ynQJITwpXyo
2021年1月7日 18:00 公開

スプレッドシートを用意


まずはスプレッドシートをこんな感じで準備します。

スクリプトを記入!

スプレッドシートの「拡張機能」の中の「Apps Script」からプログラムを書くことができます。

下記のコードをコピペして貼り付けてご利用ください。
アクセストークンとスプレッドシート情報の******部分(3箇所)は変更する必要があります。

// 応答メッセージURL
const REPLY = "https://api.line.me/v2/bot/message/reply";

// アクセストークン
const ACCESS_TOKEN = "************************";

// スプレッドシート情報
const SHEET_ID   = '************************';
const SHEET_URL  = '************************';
const SHEET_LOG = SpreadsheetApp.openById(SHEET_ID).getSheetByName('検索履歴');

function doPost(e) {

  //メッセージ受信
  const data = JSON.parse(e.postData.contents).events[0];
  //ユーザーID取得
  const lineUserId = data.source.userId;
  // リプレイトークン取得
  const replyToken = data.replyToken;
  // 送信されたメッセージ取得
  const postMsg = data.message.text;
  // 翻訳
  const lang = 'de'
  const englishMsg = LanguageApp.translate(postMsg, lang,'en');
  const japaneseMsg = LanguageApp.translate(postMsg, lang,'ja');

  // 検索履歴にユーザーID、原文、翻訳(英語・日本語)、日時を記載
  debugLog(lineUserId, postMsg, englishMsg, japaneseMsg);
  
  // LINEに送信
  sendMessage(replyToken, `EN: ${englishMsg}\nJA: ${japaneseMsg}`);
  
}

//デバック記録
function debugLog(userId, text, eng, jap) {
  const date = Utilities.formatDate( new Date(), 'Asia/Tokyo', 'yyyy-MM-dd HH:mm:ss');
  SHEET_LOG.appendRow([userId, text, eng, jap, date]);
}

// LINEに送信
function sendMessage(replyToken, replyText) {
  const postData = {
    "replyToken" : replyToken,
    "messages" : [
      {
        "type" : "text",
        "text" : replyText
      }
    ]
  };
  const headers = {
    "Content-Type" : "application/json; charset=UTF-8",
    "Authorization" : "Bearer " + ACCESS_TOKEN
  };
  const options = {
    "method" : "POST",
    "headers" : headers,
    "payload" : JSON.stringify(postData)
  };
  return UrlFetchApp.fetch(REPLY, options);
}

今回はドイツ語からの翻訳ですが、他の言語に変更することも可能です。日本語や英語ではなく、スペイン語やフランス語など、自由に変えてご利用いただけると楽しいと思います。

▼対応言語
https://cloud.google.com/translate/docs/languages

※デプロイしてウェブアプリのURL(Webhook URL)を発行してLINE Developersのページに貼り付けるのをお忘れなく!
参考動画:https://youtu.be/4MkEbRFGP14

LINE BOTを準備

LINE DevelopersのページでLINE Botを作ります。
https://developers.line.biz/ja/

作成手順は、Qiitaで詳しく解説していますのでご確認ください。
https://qiita.com/njn0te/items/2c08c936661a9febb3b0

確認

LINEで知りたいドイツ語を打って、返事が返ってきたら成功です。
これですぐに訳せるし、復習も完璧にできるので、ついにドイツ語をマスターするぞっ!

Discussion