【Python】LINEからYoutubeの曲や動画を落としたい3/3

2 min read読了の目安(約2200字

概要

【Python】LINEからYoutubeの曲や動画を落としたい1/3
【Python】LINEからYoutubeの曲や動画を落としたい2/3
【Python】LINEからYoutubeの曲や動画を落としたい3/3

Githubへアップロードしました。

・その他
マルチプロセス+ノンブロッキング処理

LINE BOT実行プログラムの作成

前回ではメインとなる部分のプログラムを作成しました。
今回はそのプログラムを常時させるためのシェルスクリプトを作成します。

なお、screenを使いますのでインストールしてない方は行ってください。

# yum -y install screen

シェルスクリプト作成

$ cd $HOME/line
$ vim start.sh
start.sh
#!/bin/bash
DIR=$(cd $(dirname $0); pwd)
PID=$(ps x |grep app.py |grep -v grep |awk '{print $1}')

case "$1" in
  "start" )
        env python $DIR/app.py > /dev/null &
        env ngrok http -region=ap 9000
        ;;

  "restart" )
        if [[ $PID != "" ]]; then
                kill $PID
                sleep 1
        fi
        env python $DIR/app.py > /dev/null &
        env ngrok http -region=ap 9000
        ;;

  "stop" )
        if [[ $PID != "" ]]; then
                kill $PID
        else
                echo "pid does not exist."
        fi
        ;;

  "status" )
        if [[ $PID != "" ]]; then
                echo "running PID:"$PID
        else
                echo "not running."
        fi
        ;;

  * )
        if [[ $PID != "" ]]; then
            kill $PID
            sleep 5
        fi
        env python $DIR/app.py > /dev/null &
        env ngrok http -region=ap 9000
esac

注意点としては、ngrokを使用する場合はリージョンを**-region=ap**に変更する必要があります。
指定しなかった場合は、Webhook設定でステータスコード200が返ってこない可能性があります。
実はngrokはセキュリティ上の問題で、LINE側で一部制限を掛けているそうです。詳細について

実行と確認

それでは実行して確認します。

$ chmod +x start.sh
$ screen
$ ./start.sh
//抜ける場合
Ctrl a + d
//入る場合
screen -r
//screen一覧
screen -ls
//screenの終了
実行中ならCtrl + d

暫く(1,2分)してからLINE DeveloperでWebhook設定を行い確認を行います。
URLはhttps://xxxxxxxx.ap.ngrok.io/callbackという風にして検証ボタンを押し、200が返ってきたら成功です。
LINEアプリから実際に入力し、確認してみてください。

それではまた次回でお会いしましょう。閲覧いただきありがとうございました。