Open4

LINE messaging api作成方法

ぽんたぽんた

LINE developersにアクセス
https://developers.line.biz/ja/

ログインボタン押下

LINEアカウントでログイン

開発者名、メールアドレスを入力してアカウントを作成
※デフォルトは言語設定が英語になっているため、右下の言語設定を日本語にしておく

Messaging APIを選択

  • チャンネルの種類:Messaging API
  • プロパイダー:個人名や企業名など入力
  • チャンネル名:messaging-api-test
  • チャンネル説明:messaging-api-test
  • 大業種:個人
  • 小業種:個人(その他)
    Messaging APIを作成する
ぽんたぽんた

ngrok インストール

https://ngrok.com/

homebrewでngrokをインストール

brew install ngrok

バージョン確認

ngrok --version

起動方法

ngrok http 80

Session Status onlineで成功

Session Status                online                                            
Session Expires               1 hour, 59 minutes                                
Version                       2.3.39                                            
Region                        United States (us)                                
Web Interface                 http://127.0.0.1:4040                             
Forwarding                    http://0d6da9d9c91c.ngrok.io -> http://localhost:8
Forwarding                    https://0d6da9d9c91c.ngrok.io -> http://localhost:
                                                                                
Connections                   ttl     opn     rt1     rt5     p50     p90       
                              0       0       0.00    0.00    0.00    0.00 
ぽんたぽんた

Laravelインストール

ディレクトリ構成

messaging-api-laravel/
├─┬ db/
│ ├── ...
├─┬ nginx/
│ ├── default.conf
├─┬ src/
│ ├── ...
├── docker-compose.yml
└── Dockerfile

ルート配下にdocker-compose.ymlを作成します。

docker-compose.yml
version: '3.9'

services:
  app:
    build: .
    volumes:
      - ./src:/var/www/html
  mysql:
    image: mysql:5.7
    ports:
      - '3306:3306'
    volumes:
      - ./db:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: laravel
  nginx:
    image: nginx:1.18
    ports:
      - '80:80'
    volumes:
      - ./src:/var/www/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - app
      - mysql

ルート配下にDockerfileを作成します。

Dockerfile
FROM php:8.0-fpm

COPY --from=composer:2.0.13 /usr/bin/composer /usr/bin/composer

COPY --from=node:14.16.1 /usr/local/bin /usr/local/bin
COPY --from=node:14.16.1 /usr/local/lib /usr/local/lib

RUN apt-get update && apt-get install -y zip unzip && \
    docker-php-ext-install pdo pdo_mysql sockets

nginxディレクトリを作成し、nginxディレクトリ配下にdefault.confファイルを作成します。

nginx/default.conf
server {
    listen 80;
    index index.php index.html;
    server_name localhost;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/html/public;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    location ~ \.php$ {
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

Dockerを立ち上げていきます。

docker-compose up -d

コンテナが立ち上がば成功です。

Creating docker_laravel_app_1   ... done
Creating docker_laravel_mysql_1 ... done
Creating docker_laravel_nginx_1 ... done

Laravelをインストールしていきます。

docker-compose exec app composer create-project --prefer-dist "laravel/laravel=8.*" .

最後に下記のようなメッセージがでれば成功です。

> @php artisan key:generate --ansi
Application key set successfully.

http://localhostへアクセスしてみる。


問題なさそうです。

src/.envのLaravelのDB設定をdockerの設定に合わせます。

src/.env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=password

初期マイグレーションを実行

docker-compose exec app php artisan migrate

下記のようにマイグレーションが通れば成功です。

Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (13.37ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (13.54ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (13.05ms)
ぽんたぽんた

Webhook設定

チャネルアクセストークンを発行
Messaging API → チャネルアクセストークン

チャネルシークレットを確認
チャネル基本設定 → チャネルシークレット

line-bot-sdkをインストール

docker-compose exec app composer require linecorp/line-bot-sdk