プログラミング学習に取り組んでいる人の中で、特に初心者の人はLINE Bot(ボット)開発をおすすめします。
LINE Bot開発をおすすめする理由として、以下のポイントが挙げられます。
1. 環境が整っており初心者にもハードルが低い
2. 学習時の開発ネタを手に入れられる
3. プログラミングで重要な開発の流れを一通り学べる
4. 可視化された成果を得られる
5. 情報発信ネタにもなる
Bot開発ひとつであらゆる理由が挙げられますが、主に上記のようなポイントを抑えることができるため、はじめに取り組む学習目標としても、今後の学習のモチベーション維持を考慮しても効果的な内容として取り進めることができるかと思います。
今回は、そんなBot開発において初心者でもおすすめ学習の内容と、pythonにおけるLINE BotでのBot開発を解説していきたいと思います。
目次
Botとは何か
Bot(ボット)とは、一言で言えば作業を自動化することができるプログラムを指します。
多くのSNSでの通知などにも利用されますが、有名なもので言えばTwitterなどのBotです。
Twitterを利用されている人であれば、Twitter上で同じ内容を繰り返しツイートしているアカウントなどを見かけることがあるかと思います。
そういったツイートを自動的に繰り返し作業しているものがBotとなります。
今回取り扱うLINE Botに関しては、LINE上で自動的に返信を行うプログラムがLINE Botということになります。
様々な企業でも利用されており、配達サービスを展開しているヤマト運輸ではLINE Botを利用したサービスを提供しています。
このように、企業でも利用されるBotですが、Bot開発自体はプログラミング環境を整えることでプログラミング初心者であっても比較的簡単に取り組む始めることができます。
そのため、プログラミング学習を始めたばかりの初心者の人であっても、学習テーマ選びのひとつとしてBot開発は向いています。
プログラミング初心者であっても取り組める
先ほども前述しましたが、Bot開発は比較的簡単に取り組み始めることができる学習テーマとなるため、プログラミング初心者の人におすすめです。
Webアプリやスマホアプリなどを開発するよりも、現在では容易に取り組めるようになっています。
やはり、Webアプリやスマホアプリとなると学習コストが大幅に変化するため、学習の中で取り組むといってもハードルが高く設定されてしまいます。
その点、LINE Bot開発は扱いやすい環境も整ってきているため、言語の種類にも影響はありますが「Python」「PHP」「Ruby」などの言語に触れてきている人であれば、開発することができます。
可視化された成果物のためモチベーション維持につながる
プログラミング学習の中で、学習自体を継続的に行うためにモチベーションの維持は重要になります。
そのため、学習時の成果をなかなか得られない環境では、学習が身についているか不安となりモチベーションの維持を図るのは困難になるかと思います。
特に学習を始めたばかりの人であれば、まずターミナルやコマンドプロンプトによるスクリプトファイル実行を繰り返し、実行画面上での結果だけを確認していることだと思います。
やはり、成果物につながる学習というのも非常にモチベーションと関わってくるため、LINE Botなどはひとつの最適な学習テーマにもなると思います。
そのため、普段利用しているLINE上でのプログラムを開発することができるBot開発は、目に見えた学習成果を得るためにもおすすめしたい学習内容になります。
プログラミング学習時のネタ探し
やはり多くの人がプログラミング学習において、頭を抱えるのがアウトプットするためのネタ探しだと思います。
「何を作れば良いかわからない。」
「学習テーマが決まらない。」
などの悩みを持つ人も少なくありません。
そもそもプログラミング学習を行いつつ開発までの流れに辿り着くのかという学習の幅に困惑することもあるかもしれません。
であるならば、やはりBot開発から取り進めるのもアリだと思いますし、アクションすればそのまま同じアクションを返してくれるオウム返しのようなプログラムから取り掛かりましょう。
まずは作成してみることが大事であって、一度作成したBotを改良していけば拡張機能なども作れるようになり、学習の幅も変化するかと思います。
その中で、開発の一部を理解することができてくることもあり、有用な学習テーマとして活用していただければと思います。
LINE Bot開発からプログラミングを学ぶ
それでは、ここから実際にLINE Botの開発をしていきたいと思います。
LINE Developersへの登録
LINE Developersへの登録は、自身のLINEと連携して登録することができるので、簡単に済ませることができます。
登録が済んだら、Messaging APIという箇所を選択して、プロバイダ名とチャネルを作成していきます。
ここで、注意ですが筆者も”line”と”_(アンダーバー)”を利用して名前を作成していましたが、入力値として受け付けていなかったため、これら二つを取り除いた名前で作成すると、入力値を受付けてスムーズに作成することができました。
1. アプリ名
2. アプリ説明
3. 大業種・小業種
4. メールアドレス
5. プライバシーポリシーURL(任意)
6. サービス利用規約URL(任意)
これらの値を適切に入力していけばすぐに利用できるようになります。
作成後は、このように新規のチャネルを作成することで、利用可能な状態になります。
また、このチャネル基本設定の欄を利用していきます。
のちに利用することになるアクセストークンは、発行しておきましょう。
herokuへの登録
こちらもherokuへの登録を済ませて、アカウント作成しておきましょう。
メールアドレスとパスワードを決定すれば、簡単にアカウント作成することができます。
herokuページのPythonを選択していただけると、詳細なページにてCommand Lineという項目がありますので、そちらから自身のPC環境に合わせてインストーラーをダウンロードし、herokuが利用できるようインストールをしておきましょう。
PythonによるBot開発
今回利用するのが、Flaskと呼ばれるPythonにおけるwebフレームワークと、LINEが提供しているパッケージになります。
$ pip3 install flask $ pip3 install line-bot-sdk
pip3を利用して各種インストールを実行しておきます。
デスクトップなどに今回作成するBot開発用のフォルダを作成しましょう。
そこにPythonの.pyファイルを作成していきます。
実装する内容を以下に記述しておきます。
main.py
from flask import Flask, request, abort from linebot import ( LineBotApi, WebhookHandler ) from linebot.exceptions import ( InvalidSignatureError ) from linebot.models import ( MessageEvent, TextMessage, TextSendMessage, ) import os app = Flask(__name__) #環境変数取得 YOUR_CHANNEL_ACCESS_TOKEN = os.environ["YOUR_CHANNEL_ACCESS_TOKEN"] YOUR_CHANNEL_SECRET = os.environ["YOUR_CHANNEL_SECRET"] line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN) handler = WebhookHandler(YOUR_CHANNEL_SECRET) @app.route("/callback", methods=['POST']) def callback(): # get X-Line-Signature header value signature = request.headers['X-Line-Signature'] # get request body as text body = request.get_data(as_text=True) app.logger.info("Request body: " + body) # handle webhook body try: handler.handle(body, signature) except InvalidSignatureError: abort(400) return 'OK' @handler.add(MessageEvent, message=TextMessage) def handle_message(event): line_bot_api.reply_message( event.reply_token, TextSendMessage(text=event.message.text)) if __name__ == "__main__": # app.run() port = int(os.getenv("PORT", 5000)) app.run(host="0.0.0.0", port=port)
チャネルシークレットとアクセストークンの箇所は、事前にLINE Developersで発行されたものを貼り付けて利用していきます。
また、設定ファイルを作成する必要がありますので、各ファイルをフォルダの中に作成しておきましょう。
・runtime.txt
python-3.7.0
・requirements.txt
Flask==0.12.2 line-bot-sdk==1.5.0
・Procfile
web: python main.py
herokuの設定
ターミナルあるいはコマンドプロンプトを開き、特定のディレクトリまで進んでいただいた段階で、herokuへのログインを実行していきます。
$ heroku login Enter your Heroku credentials: Email: XXX@XXX Password: ***
次にアプリケーションの登録を行います。ここで作成されたアプリケーションでは、のちにLINE Developersのチャネル基本設定にて利用するURLが発行されるので、書き留めておきましょう。
$ heroku create <アプリケーション名>
次に環境設定についてです。チャネルシークレットとアクセストークンの設定をしておきます。
$ heroku config:set YOUR_CHANNEL_SECRET="Channel Secretの文字列をペースト" --app <アプリケーション名> $ heroku config:set YOUR_CHANNEL_ACCESS_TOKEN="アクセストークンの文字列をペースト" --app <アプリケーション名>
設定ファイルのデプロイ
Bot開発もあと少しとなってきました。
ここでは、herokuへ設定ファイルをデプロイしていきます。
$ git init $ git add . $ git commit -m "new commit" $ git push heroku master
無事プッシュすることができれば完了です。
うまくプッシュできない場合は、設定ファイルを確認しましょう。リモートでの環境が整っていないこともあるので、都度確認しておきましょう。
Webhookの設定
LINE Developersのチャネル基本設定に戻り、先ほど作成したアプリケーション名を入力したURLを設定していきます。
LINE Botの実行
ここまできたら、LINE Developersのチャネル基本設定の下部にあるQRコードをLINEから読み取り、自身のLINEでトークルームを開いてみましょう。
そこで、テキストデータを送信して返信が返ってこれば完成です。
うまく返信が返ってこない場合は、ログを確認してみましょう。
また、HTTPステータスコードによって、エラーが起きていることが確認できるので、その都度対処方法を調べて解決していきましょう。
$ heroku logs --tail -a <アプリケーション名>
まとめ
いかがでしたでしょうか?
非常に簡単にLINE Bot開発が行える環境があるため、これを利用してオリジナルなBot開発をしてみるのも良いかと思います。
最後まで一読していただき、ありがとうございました!
Pythonに特化した学習を進めたい人へ
筆者自身は、Pythonista(Python専門エンジニア)としてプログラミング言語Pythonを利用していますが、これには取り組む理由があります。
プログラミングの世界では、IT業界に深く関わる技術的トレンドがあります。
日夜新しい製品・サービスが開発されていく中で、需要のあるプログラミング言語を扱わなければなりません。
トレンドに合わせた学習がプログラミングにおいても重要となるため、使われることのないプログラミング言語を学習しても意味がありません。
こういった点から、トレンド・年収面・需要・将来性などを含め、プログラミング言語Pythonは学習対象としておすすめとなります。
オンラインPython学習サービス – 『PyQ™(パイキュー)』
「PyQ™」は、プログラミング初心者にも優しく、また実務的なプログラミングを段階的に学べることを目指し、開発されたオンラインPython学習サービスです。
Pythonにおける書籍の監修やPythonプロフェッショナルによるサポートもあり、内容は充実しています。
技術書1冊分(3000円相当)の価格で、1ヶ月まるまるプログラミング言語Pythonを学習することができます。
特に、、、
・プログラミングをはじめて学びたい未経験者
・本、動画、他のオンライン学習システムで学習することに挫折したプログラミング初心者
・エンジニアを目指している方(特にPythonエンジニア)
かなり充実したコンテンツと環境構築不要なため、今すぐにでも学び始めたい・学び直したい、Pythonエンジニアを目指したい人におすすめです。
オンラインPython学習サービス「PyQ™(パイキュー)」 ※技術書1冊分の価格から始めて実務レベルのPythonが習得できます |
おすすめしたいプログラミング学習プラットフォーム
ここまでの解説の中で、LINE APIを利用したBot開発を解説してきました。
独学・未経験から始める人も少なくないので、プログラミング学習の継続や学習を続けたスキルアップにはそれなりのハードルが設けられています。
また、プログラミング学習においても、学習者によってはすでに学習対象とするプログラミング言語や狙っている分野が存在するかもしれません。
そのため、さらに費用を抑えてピンポイント学習に取り組みたいと考える人も少なくありません。
そこで費用を抑えた上でプログラミングに取り組みたい人へ、オススメしたいプログラミング学習プラットフォームを紹介していきます。
プログラミング学習プラットフォーム – Udemy
Udemyは、世界最大級のオンライン学習プラットフォームとなります。
世界中の学びたい人と教えたい人をオンラインでつなぐサービスとなっており、Udemyは米国Udemy,Inc.が運営するプラットフォームで日本ではベネッセが事業パートナーとして協業をしています。
<利用者実績>
受講者数:約3000万人
講師数:約42000人
講座数:約10万
お手頃な価格帯の豊富なコンテンツ
1講座あたり数千~数万円程度で実践的なスキルアップが可能となっています。
講座は一度購入すれば視聴期限なく受講することができます。
また、30日返金保証もついているので安心して始めることができます。
学びやすい多彩な機能
0.5~2倍の変速機能で自分のペースで受講を可能にする機能や、専用アプリを利用することでスマホからオフライン環境でも学習対象となる講座の視聴が可能です。
また、講師にアプリ・サイト等の直接掲示板から質問ができるため、疑問を解決し自学自習をサポートしています。
どんな人が対象者になるのか?
Udemyを検討するにあたって、次のような内容で悩んでいるあるいは目的としている人にオススメすることができます。
・習得したいプログラミングスキルが明確で、年収アップのために学習しているエンジニア
・テクノロジー、ビジネスに関するスキルアップに関心が高い人(特にAI・機械学習を学んでスキルアップを検討されている人)
・Adobeのソフトなどウェブデザインを学びたいと考えている人
・仕事に関連して、スキル獲得や資格取得が必須な人
・転職・再就職・副業のために自己投資を検討している人
これらの内容に当てはまる人は、利用しやすい環境が整っています。
Udemyの主要コース
Udemyには数多くの講座ありますが、分野ごとに学習対象を区分けしておきましょう。
登録してすぐにでも学習が始められるので、特化した分野を以下にまとめておきます。
プログラミング学習は時間を無駄にせず、素早く学習を始めることも大切なので、一分一秒でも習得したいプログラミングスキルに時間を費やしましょう。
世界最大級のオンライン学習サイトUdemy ※講座数10万の中から取り組みたいものが分野別・レベル別で見つかります Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学ぶオンライン講座 |