nikkie-ftnextの日記

イベントレポートや読書メモを発信

イベントレポート | PythonでLINE botを作ろう!! ITわいわい!! サポーター参加 #nipponrick

はじめに

だんないよ、nikkieです。
6/16にLINE Bot ハンズオンにサポーター参加してきました。そちらのレポートです。

勉強会の概要

PythonでLINE botを作ろう!! ITわいわい!! - connpass

■ご案内
IT技術者同士のつながりの輪を広げたい思いからわいわい交流会が始まりました。 第2回目となる今回は、『PythonでLINE botを作ろう』をテーマにハンズオンを実施致します。
Pythonに興味はあるけど一人ではなかなか先へ進めない方など、この機会にPythonに触れてみませんか。

講師のFumiさんとは3月のサポーターズ勉強会で知り合い、
次回ハンズオンでお手伝いさせてくださいと申し出たところ、今回の機会をいただきました。 イベントレポート | 【サポーターズCoLab勉強会】Python勉強会(LINE Botハンズオン)#spzcolab - nikkie-ftnextの日記

微力ながら次回はメンターや運営の手伝いなどお手伝いしたいと思いますので、お気軽にお声がけください。

LINE Bot作成

資料は以下に公開されています。(第1回目の内容をベースに、4択クイズ機能が追加された内容です)
Python勉強会(#002) 『PythonでLINE botを作ろう!!』公開資料 – Python勉強会

コードに関しては以下のような手順で手を入れていきました。

  • GitHubのline-bot-sdk-pythonのサンプルコードをベースにする
  • 接続確認でエラーにならないように修正
    • サンプルコードのエンドポイントが存在しないので、存在するエンドポイントに修正(スライド87)
    • 接続確認では返信先がないことによるエラーが出ないように修正(スライド90)
  • 4択クイズBotに機能追加

感想

  • ほとんどの人が4択Botを動かせたようでよかったです。機能追加する際はコードを少し変えて動かして挙動を見て、理解を深めていくような感じでしょうか。気になる箇所をprintしてもよさそうです。
  • LINE Bot SDKはFlaskで動いているようです。AzureのWebAppsの知識と掛け合わせたところ、オウム返しBotをWebAppsで動かせました!ざっくりとした手順1
    • WebAppsインスタンス作成(Python3.6を使うように設定2)
    • GitHubのline-bot-sdk-pythonのサンプルコードについて以下を行う(main.pyとして保存する)
      • 上記の「接続確認でエラーにならないように修正」2点
      • YOUR_CHANNEL_ACCESS_TOKEN,YOUR_CHANNEL_SECRET環境変数から読み込むようにする(os.getenv())
    • WebAppsで動かすために必要なファイルを追加 参考: https://github.com/ftnext/python-docs-hello-world
      • .skipPythonDeployment
      • ptvs_virtualenv_proxy.py
      • web.config
      • requirements.txt
    • WebApps側に環境変数設定

▼動かしてみた様子はこちらから

  • 懇親会でサポートのしむどんさんがPyNyumonのテキストを作られたことを知りました。あのテキストは何度も参照しました。今回は私一人では解決できない部分をフォローしていただきありがとうございました!
  • 事前に調べたり、当日対応したりして環境構築について少し理解が進みました。(PyNyumonでメンターのみなさんが何と戦っているかその一端を垣間見た気がします)

ハンズオン参加者の皆さま、運営の皆さま、どうもありがとうございました。
質問に答えることで理解を深められましたし、いろいろな方とつながれた素敵な時間でした。

脚注


  1. 再現性を担保するべく、近日中にソースコード公開して記事にまとめます。

  2. 不要かもしれないですが、Python3.6を境にjson.loads()の動きが変わっていたことで1週間ハマりました ToTの経験からバージョンは揃えると心に決めています