PSGI も初めてだったんで、LINE API のテストにハマった

いやあ、やっと LINE Messaging API を使った「オウム返し bot」がちゃんと動いた。

試しに Perl でテストプログラムを作ってみようと昨夜手をつけたんだけど、これがなかなかうまく行かなくて(^^;

公式 API リファレンスに載ってるスクリプト例が PSGI(Perl Web Server Gateway Interface)前提になってるんで、CGI 形式になおしてもよかったんだけど、まあ、せっかくなんで PSGI 使ってみようかなっと。その分よけいに時間がかかってしまった(^^;

やることは、

    1. CPAN から Perl モジュールを簡単にインストールするための cpanm のインストール
    2. Plack インストールの前準備(openssl-devel、expat-devel などを yum で入れておく)
    3. Plack(PSGI サーバソフトウェア)のインストール(cpanm で、Task::Plack、XMLRPC::Transport::HTTP::Plack をインストール)
    4. LINE API 関係のモジュールをインストール(cpanm で、LINE::Bot::API をインストール)
    5. Apache に PSGI サーバへのリバースプロキシ設定を追加(https://www.hoge.jp/line_api/ にアクセスがあったら、http://localhost:5000/ に転送・・・みたいな)
    6. API を使うチャンネルを LINE Developersコンソールで作成
    7. チャンネルの設定(基本設定、Webhook やチャネルアクセストークンなど Messaging API の設定)
    8. プログラム作成(GitHub 上の「LINE::Bot::API - SDK of the LINE Messaging API for Perl」にサンプルプログラムあり)
    9. Apache Web サーバ起動
    10. PSGI サーバ起動(例:plackup --max-workers 30 --port 5000 -a bot.psgi&)
    11. LINE でこのチャンネルと友達になる
    12. トーク画面で話しかけて、同じ言葉をチャンネル側が返してくるか確認

って感じ。けっこう色々あるっしょ?

20200511_line1.jpg
これがなかなか大変。Task::Plack のインストールはかなりの数のモジュールがインストールされるので時間がかかるし、「チャンネルの設定」って一行でさらっと書いているけど、アイコンとかチャンネル名とかの基本情報は LINE Official Account Manager で設定するし、Webhook やチャネルアクセストークンの発行などは LINE Developers で行う。どっちで何を設定できるのかよくわからんし、飛んだ先のページからの戻りリンクが無かったり、なんか手間取った。

結局、うまく行かなかったのも、チャネルアクセストークンの発行が正しく行われてなかったからのようだ。ずっとうまく行かなくて悩んでいたのだが、トークンを再発行してプログラムに設定したら、あっけなく上手く行った。

PSGI も初めてだったので、その仕組から調べたので時間がかかった。素直に PSGI のソースを CGI に書き直した方が早かっただろう(笑)
ググっても、ngrok を利用する記事が多くて、最初は PSGI のこともよくわからなかったので、何が何やら(^^;・・・

まあ、そのうち、ルータの内側の PSGI サーバへ外部から直接アクセスするために ngrok というトンネリングサービスを使っていることや、つまりは PSGI サーバは Java の Tomacat みたいなアプリケーションサーバ(のようなもの)なのか・・・とかそういうことがわかってきたので、「うちのテストサーバはグローバルIPアドレス空間にいるので ngrok なんか使わずに、Apache で Reverse Proxy 設定してやればいいだけじゃん」と。そこまで考えが至るにもけっこう時間がかかった(^^;

疲れた(^^;

具体的な設定やプログラムについては追々書いていこう(笑)

トラックバック(0)

このブログ記事を参照しているブログ一覧: PSGI も初めてだったんで、LINE API のテストにハマった

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/5595

コメントする

このブログ記事について

このページは、shinodaが2020年5月11日 23:04に書いたブログ記事です。

ひとつ前のブログ記事は「20年ぶりにインナーグローブを洗う(^^;」です。

次のブログ記事は「LINE にメッセージを返す Perl プログラム」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら