2024年11月24日 星期日

使用 Ngrok + Perl 串接 LINE BOT Webhook

 使用 Ngrok + Perl 串接  LINE BOT Webhook


復習一下舊筆記 [使用 Perl 建立 Line API 運用環境]

https://xrcd2.blogspot.com/2016/12/perl-line-api.html

一樣是用 Linux + Ngrok + Perl 組合而來,

只是將 CentOS Linux 6.8 + Perl 5.25 (2016年)

改成 Oracle Linux 9.5 + Perl 5.32 (2024年)   

參考 URL

https://github.com/line/line-bot-sdk-perl

https://github.com/line/line-bot-sdk-perl/blob/master/eg/echo.psgi


筆記如下:


dnf install perl-App-cpanminus.noarch

cpanm install  Plack

cpanm install LINE::Bot::API


修改 echo.psgi  這一支程式,

在 62 行處    $messages->add_text( text => $event->text );

下方插入這行  $messages->add_text( text => $from_id); 


讓 Line BOT Webhook 回傳 User_ID / Group_IP 資訊,可供程式傳送訊息使用.

其 User_ID 在 登入 https://developers.line.biz 後應該也是可以找到它的.

但 Group_ID 應該是僅能透過 Webhook 取出.(印象中)

所以才會有這個筆記的,而這個筆記取得的Group_ID,以後是用來發 Alert 用的.


另外也是要透過 https://ngrok.com 取得 ngrok 這支程式,

用它來將內部主機執行 echo.psgi 產出的  LINE BOT Webhook 服務

轉成一個在 Internet 上的 LINE BOT Webhook 服務.


如果不修改程式,也是可以在  plackup echo.psgi  後看到它. 

看到的資訊如下所示:



[root@node1 tmp]# plackup --host 127.0.0.1 --port 9090  echo.psgi


HTTP::Server::PSGI: Accepting connections at http://127.0.0.1:9090/

message_id=536187989014348097, type=message(U74ea4XXXXXXXXXXXXXXXXXXXXXX866b1), 

reply_token=774fa992d5bb449da5e829402b5b101e, timestamp=1732424250192 at /tmp/line-bot.pl line 50.

127.0.0.1 - - [24/Nov/2024:12:57:31 +0800] "POST /perl/callback HTTP/1.1" 200 2 "-" "LineBotWebhook/2.0"


message_id=536188075936579603, type=message(C39bdbXXXXXXXXXXXXXXXXXXXXXX32dea), 

reply_token=bce83ae760d8480f8823d47c0a2ab5b4, timestamp=1732424302131 at /tmp/line-bot.pl line 50.

127.0.0.1 - - [24/Nov/2024:12:58:22 +0800] "POST /perl/callback HTTP/1.1" 200 2 "-" "LineBotWebhook/2.0"



開二個 SSH Session (1) / (2) 


(1) 執行  echo.psgi

 plackup --host 127.0.0.1 --port 9090  echo.psgi 


(2) 執行 ngrok 

ngrok config add-authtoken 2pHSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1EU7g

ngrok http 9090 


================================================


ngrok                                                                                                                                                                                                                                                         (Ctrl+C to quit)

                                                                                                                                                                                                                                                                              

Sign up to try new private endpoints https://ngrok.com/new-features-update?ref=private                                                                                                                                                                                        

                                                                                                                                                                                                                                                                              

Session Status                online                                                                                                                                                                                                                                        

Account                       XXXXXXXXXXX@gmail.com (Plan: Free)                                                                                                                                                                                                             

Version                       3.18.4                                                                                                                                                                                                                                          

Region                        Japan (jp)                                                                                                                                                                                                                                      

Latency                       39ms                                                                                                                                                                                                                                            

Web Interface                 http://127.0.0.1:4040                                                                                                                                                                                                                           

Forwarding                    https://992c-XXX-XXX-XXX-XXX.ngrok-free.app -> http://localhost:9090                                                                                                                                                                             

                                                                                                                                                                                                                                                                              

Connections                   ttl     opn     rt1     rt5     p50     p90                                                                                                                                                                                                     

                              0       0       0.00    0.00    0.00    0.00                                                                                                                                                                                                    

                                                                                                                                                                                                                                                                              

==============================================


將 Forwarding   https://992c-XXX-XXX-XXX-XXX.ngrok-free.app 資訊填入   https://developers.line.biz  內.

即可完成   使用 Ngrok + Perl 串接  LINE BOT Webhook                                                                                                                                                                          

Demo                                                                                           









沒有留言:

張貼留言