Skip to content

ConnpassAPIを使用した交流会・勉強会の検索用LINEBOT

Notifications You must be signed in to change notification settings

kihonep/Laravel_Connpass_Linebot

Repository files navigation

仕様

Connpass APIから情報を取得し、LINE上に表示する勉強会検索用のLINEBOT。 LINE Messaging APIの仕様上限である10件までの情報を取得。表示する優先度は更新順。

導入手順

1. LINE Devlopersアカウントを取得

アカウントを作成する。

2. LINE Developersに移動し、アクセストークン等を発行

チャネル基本設定画面でチャネルシークレットを発行し、Messaging API設定画面でチャネルアクセストークンを発行する。

3. 各種設定

・.envを作成

$ cp env-example .env

・.envにLINEチャネルキーを設定

︙
LINE_CHANNEL_SECRET = xxxxx
LINE_ACCESS_TOKEN = xxxxx

・APP_KEYを作成

$ php artisan key:generate
//base64:xxxxx が生成

・ngrokで動作確認

$ ngrok http xxxxx
//デフォルトは8080

4a. Herokuにデプロイする場合

・Herokuのアカウントを作成し、アプリを新規作成

Deploy

・Herokuアプリへの環境変数の設定

LINE_CHANNEL_SECRET - xxxxx
LINE_ACCESS_TOKEN - xxxxx

//SettingsからReveal Config Varsボタン

・Herokuの環境変数にAPP_KEYを設定

$ heroku config:set APP_KEY=base64:xxxxx -a herokuアプリケーション名

4b. AWSにデプロイする場合

・AWSアカウントを作成し、EB CLIのインストール

$ pip install awsebcli --upgrade --user

・EBにデプロイ

$ eb init  
$ eb deploy

・EBでドキュメントルートの設定

/public

//[設定] > [ソフトウェアの更新] > [ドキュメントのルート]

・環境変数の設定

APP_KEY - base64:xxxxx

//[設定] > [ソフトウェア設定] > [環境プロパティ]

・Route53でドメインを取得
・Certificate Managerで証明書の生成
・ロードバランサーで設定

5. LINE Console上でWebhookを設定

・Herokuの場合の設定

https://xxxxx.herokuapp.com/api/meetups
//[トップ] > [アカウント名] > [チャネル名] > [Messaging API設定]

・AWSの場合の設定

https://xxxxx/api/meetups

QRコード

B909E27D-4072-4F2B-BF49-095F0473CD55

LINEアプリで直接URLを開く。

– Tools –
・PHP 7.3.14
・Laravel 6.16.0
・Docker 19.03.7
・Git 2.21
・AWS Elastic Beanstalk
・Route53
・Certificate Manager
・Identity and Access Management (IAM)
・LINE Messaging API (Flex Message)
・Connpass API
・ngrok

参照

・ngrok
・LINE Messaging API - Flex Message
・EB CLI - 手動インストール
・Elastic Beanstalk - HTTPS 設定

ライセンス

MIT license.