こんにちは、みやびのです。
ITエンジニア業を10年ほどやっています。

今回は、

「Pythonの勉強を始めたけどどんなプログラムを作ったらいいんだろう?」

という疑問に答えます。

Python初心者はチャットボットを作るのがおすすめです。

なぜなら「初心者でも比較的簡単に作ることができる」「機能が拡張性しやすい」「情報が充実している」というメリットがあるから。

特に簡単に作れるという点は早期にプログラムを作る達成感を味わえるため、勉強のモチベーション維持にも役立ちます。

モチベーション維持はプログラミングの勉強において大切なことです。
まずは「こんにちは」など簡単な挨拶でもいいので作ってみましょう。

本記事では、チャットボットがおすすめな理由について深掘りしていきます。

あわせて読みたい

SlackbotをPythonで作成しよう

チャットボットがおすすめな理由

What

繰り返しとなりますが、チャットボットがおすすめな理由は以下の3つです。

・初心者でも比較的簡単に作ることができる
・機能が拡張性しやすい
・情報が充実している

順番に説明します。

初心者でも比較的簡単に作ることができる

チャットボットは初心者でも比較的簡単に作れるのが最大のメリットです。

簡単な挨拶を応答するボットであれば数行のプログラムで作ることができます。

例えばSlackbotを作成には以下の2ファイルを用意するだけです。

◆bot.pyの記述

# ライブラリの読み込み
from slackbot.bot import Bot
from slackbot.bot import respond_to


def main():

    # ボットの起動
    bot = Bot()
    bot.run()


@respond_to('こんにちは')
def greeting(message):
    # メンションして応答
    message.reply('こんにちは!')

◆slackbot_settings.pyの記述

# ライブラリのインポート
import os

# 環境変数に定義しておく
API_TOKEN = os.environ['BOT_API_TOKEN']

# デフォルトの応答
DEFAULT_REPLY = "すみません。よくわかりません"

このコードの具体的な説明については「SlackbotをPythonで作成しよう」にて説明しています。

機能が拡張性しやすい

機能が拡張しやすいのが2つ目のメリットです。

挨拶の種類を増やしたり、特定の処理を追加・修正したりが簡単にできます。

◆Slackbotで処理を追加する例

@respond_to('こんにちは')
def greeting(message):
    # メンションして応答
    message.reply('こんにちは!')

# 追加
@respond_to('コンニチハ')
def greeting(message):
    # メンションして応答
    message.reply('コンニチハ!')
# 追加

上記のように新しい挨拶のパターンを追加するのも簡単です。
勉強したことをどんどん追加していきましょう。

情報が充実している

チャットボットの情報はネットでググれば出てきます。
エラーや課題に直面した場合でもネットで調べれば大抵の問題は解決可能です。

情報が少ないと簡単な問題の解決でも解決困難になります。情報が充実しているかどうかは結構大事です。

チャットボットの作り方~Python編~

Bot
特におすすめなのがSlackbotです。
TwitterやLineなどのSNSもBotがありますが、Slackと比較すると手順が面倒で時間もかかります。

Slackbotであれば面倒なのはSlackの登録くらいです。(これも1,2分で終わります)
Slackの登録も無料でAPIキーも比較的簡単に作れます。

Slackbot作成の手順は以下の通り。
1.Slackに登録(無料)
2.APIトークンを取得
3.ライブラリをインストール
4.コードをコピペしてファイルを作成

これだけで作成可能です。

Slackに登録(無料)

Slackの登録は「Slackの公式サイト」からできます。
個人でも登録可能で簡単な情報を入力だけで登録可能です。

登録方法については「Slackを始める方法と機能について」をお読みだくさい。

APIトークンを取得

Slackbot用のAPIトークンを取得する方法は以下の通り。

1.SlackのAppのページに移動します。
https://xxxxxxxxx.slack.com/apps
2.「hubot」で検索します。
3.「設定の追加」ボタンをクリックします。
4.名前を入力して「Hubotインテグレーションの追加」をクリックします。

「HUBOT_SLACK_TOKEN=」以降の内容がAPIトークンです。

詳細の手順は「SlackbotのAPIトークンを取得する(動画あり)〜Hubotのインストール〜」をお読みください。

ライブラリをインストール

ターミナルから以下のコマンドを実行してライブラリをインストールします。

pip install slackbot

コードをコピペしてファイルを作成

以下の3つのファイルを作成して、以下の内容をコピーして貼り付けてください。

・slackbot_settings.py
・bot.py
・botmodule.py

ファイルは全て同じフォルダに置きます。

◆slackbot_settings.pyに記述する内容
※ API_TOKENには先ほど取得したAPIトークンを指定します。

# 「API_TOKEN」にはSlackから取得したAPIトークンを記述してください
API_TOKEN = "XXXXXXXXXXXXXXXXXXX"

# 知らない言葉を聞いた時のデフォルトの応答
DEFAULT_REPLY = "その言葉の意味は知りません"

# 外部ファイルを読み込む。botmodule.pyを読み込んでおく
PLUGINS = [
    'slackbot.plugins',
    'botmodule',
]

◆bot.pyに記述する内容

from slackbot.bot import Bot
# Botを起動する
def main():
    bot = Bot()
    bot.run()

if __name__ == "__main__":
    main()

◆botmodule.pyに記述する内容

from slackbot.bot import respond_to
from slackbot.bot import listen_to

# 「respond_to」はメンションする(@でターゲットを指定すること)と応答する
@respond_to('こんにちは')
def greeting_1(message):
    # Slackに応答を返す
    message.reply('こんにちは!')

# 「listen_to」はメンションがなくても応答する
@listen_to('コニチハ')
def greeting_2(message):
    message.reply('コニチハ')

◆実行例
Slackを開いて「こんにちは」と入力すると応答が帰ってきます。(Slackbotを招待したチャンネルのみで応答します)

Slackbotからの応答

作り方の詳細については「SlackbotをPythonで作成しよう」をお読みだくさい。

まとめ

チャットボットは初心者がプログラミングを勉強するにはおすすめのプログラムです。
理由は以下の通り。

・初心者でも比較的簡単に作ることができる
・機能が拡張性しやすい
・情報が充実している

特におすすめなのがAPIキー取得が簡単なSlackbotです。
興味がある方は是非試してみてください。

Slackbotの作り方は「SlackbotをPythonで作成しよう」をお読みください。