Blog
ブログ

2020年4月3日

第十回社内勉強会

今回の勉強会のテーマはtelegram botの自作方法と短期試験勉強法、この2つの勉強会です。
勉強会で勉強する方法を教えるのは少しおかしくて面白いですよね。

Telegramについて

telegram icon

Telegramとは日本では馴染みはありませんが、世界中で利用されているチャットツールです。
ユーザーは他のユーザーやチャットグループでチャットできます。
日本でのLineのようなものにあたるものだと思います。

今回はTelegram上で使用できるチャットを通してタスクを実行したり返答できるBotの作成方法の紹介です。
LineのBotアカウントと根本は同じような物になります。

開発環境
・node.js 12
・TypeScript 3.8
・Telegraf.js

Telegraf.jsを使いユーザからのメッセージをリクエストという形で受け、メッセージによって処理を記述することでユーザのメッセージに合わせて処理を分岐させることも可能です。

まずはBot作成するためにTelegramに登録必要する必要があります。(以下実際は英語のため意訳)

Telegramアカウントを作成し、BotFather(https://telegram.me/botfather)に「/newbot」(意味:ぱぱ~ぼっとつくる~)とメッセージしましょう。
そうするとパパから「おお、そうかいなんて名前のbotを作るんだい?」と英語で言われるので作成するbotに命名してあげましょう。この時「/」は必要ないのでそのまま名前を入力してあげましょう。
命名してあげると「いいじゃないか、じゃbotに使うユーザ名を付けてあげてくれ、必ず最後は”bot”という文字を付けなさい」とまた要求されるので、最後にbotがつくように命名してあげましょう。
例を上げると、「ExampleBot」「Example_bot」など。bot名+”_bot”とつけるのが無難でしょう。

botのユーザ名まで命名するとパパから「Botつくったよ~、Botのユーザ設定はあとで色々変更できるぞ」と長々と来ますがその文の中にアクセストークンなる物が入っているのでこれをメモしておきます。


今回はクラウドサービスなどを使わず使用しているPCでnode.jsを使いTelegramBotの起動を行います。
ここからTelegraf.jsのTelegramBot用のJSライブラリをして実際の処理を実装していきます。

  1. // filename: hello-world.ts
  2. import Telegraf from 'telegraf'
  3. const bot = new Telegraf(process.env.BOT_TOKEN!) // 環境変数から Token を取得
  4. bot.start((ctx) => ctx.reply('Welcome')) // はじめての挨拶 (固有コマンド /start)
  5. bot.help((ctx) => ctx.reply('Send me a sticker')) // 固有コマンド /help
  6. bot.on('sticker', (ctx) => ctx.reply('\u{1F44D}')) // スタンプが来たら親指の emoji を返信する(wiki 非対応のため unicode に変換しました。)
  7. bot.hears('hi', (ctx) => ctx.reply('Hey there')) // 対話中のキーワードマッチング
  8.              // ^^ ここ Regex も OK
  9. bot.launch() // 起動

まずはじめにbot変数の中にTelegraf.jsを使用して取得するBotを入れます。
botを操作する時はこの変数を使い処理を行います。

今回の使用するbotでは「start()」「help()」「on()」「hears()」「launch()」のメソッドを使用しています。
・start()は初めて会話をした時にメッセージの処理
・help()はbotについてのヘルプを表示する内容の処理
・on()はユーザがスタンプを使用した際に行う内容の処理
・Hears()はユーザが送ってきたメッセージが第一引数にある文字列が含まれていれば行う処理
・Launch()はbot起動するメソッドで最後にかならず必要になる処理

上記のようなコードを起動して自分のbotのチャットページでチャットを行うことでコードに書いたようにbotが返答してくれるようになります。

実際に動かしている様子

短期資格試験勉強法

うちの社員である張さんは超短期で試験合格してしまう事で社内で有名です。
そんな張さんに是非社内で短期で試験合格するために行う事を発表してもらいました。

・まず試験範囲、試験時間を明確にする。試験では合格ラインという物があるのでそのラインを明確にして確実に取れるように勉強していきます。
・そして、過去問題を説いていきます。試験毎に差はありますが試験に一番近い試験のため出題傾向などを知ることが出来ます。

過去問題は
① 1~2回試験分の問題を残して、試験直前にリハーサルようにします。
② 問題の詳細や経緯を完全に理解することを避けて、全体像で正解を理解し、記憶します。
③ 間違った問題をマークして、定期的に復習します。
④ 毎回過去問題を行った後、正解率を計算して合格基準以上か、未満かを確認して、正解率の推移を把握します。

※上記を徹底して確実に試験に受かることを目標にしているので、誤解の無いよう注意してください。

このページの先頭へ