Open4
LINE messaging api作成方法
LINE developersにアクセス
ログインボタン押下
LINEアカウントでログイン
開発者名、メールアドレスを入力してアカウントを作成
※デフォルトは言語設定が英語になっているため、右下の言語設定を日本語にしておく
Messaging APIを選択
- チャンネルの種類:Messaging API
- プロパイダー:個人名や企業名など入力
- チャンネル名:messaging-api-test
- チャンネル説明:messaging-api-test
- 大業種:個人
- 小業種:個人(その他)
Messaging APIを作成する
ngrok インストール
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 /usr/bin/composer /usr/bin/composer
COPY /usr/local/bin /usr/local/bin
COPY /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