LIFFを使用したアプリケーションを何か作ってみたかったので、勤怠連絡のBOTを作ってみました。
ちょっと長くなりそうなので、全3回でまとめます。
- Vue+LIFF(LINE Front-end Framework)+GASでフォームを使ったBOTを作ってみた(その1:Vue編)
- Vue+LIFF(LINE Front-end Framework)+GASでフォームを使ったBOTを作ってみた(その2:LIFF編)
- Vue+LIFF(LINE Front-end Framework)+GASでフォームを使ったBOTを作ってみた(その3:GAS編)
BOTの設定
参考
LIFFの設定は以下の記事が大変参考になります。
- LINE の LIFF 開発超入門 : LIFF SDK を使った Web アプリの開発
- LINE Bot : LINE Front-end Framework を liff npm パッケージで操作
設定
https://developers.line.me/ja/docs/liff/getting-started/を参考にして進めます。
-
アクセストークン
を作成してコピーしておく - 一番下の
Your user ID
もコピーしておく -
Channel Secret
も後ほど利用するので生成してコピーしておく -
Webhook送信
は後ほど設定するので、利用する
に設定 -
BOTのグループトーク参加
→利用する
に設定 -
自動応答メッセージ
→利用しない
-
友だち追加時あいさつ
→利用しない
LINEアプリへのQRコード
がありますので、LINEアプリより追加してください。
LIFFを設定
以下記事で作成したものの続きになります。
コードの追加
まずは、コードを追加します。
※Vueに組み込みたかったのですが、うまく動作させることができず、外部ファイルで対応しました・・・。
public/index.html
のheadに以下を追加します。
<script src="https://d.line-scdn.net/liff/1.0/sdk.js"></script>
<script src="./send.js"></script>
続いて、send.js
を新規作成します。場所は、public/send.js
です。
window.onload = function(e) {
// sendにclickイベントを追加
document.getElementById('send').addEventListener('click', function() {
// messageの中身を取得し、sendMessagesのtextに入れる
var ms = document.getElementById('message').value;
liff
.sendMessages([
{
type: 'text',
text: ms
}
])
.then(function() {
window.alert('送信完了');
// aleartでOKを押すと、自動でLIFFウィンドウが閉じる
liff.closeWindow();
})
.catch(function(error) {
window.alert('Error sending message: ' + error);
});
});
};
liff.sendMessage
で送信します。
公開
LIFF
はhttps
が必要なため、わざわざサーバーを用意する必要のないGitHub Pages
で公開します。
まずは、build
します。
yarn run build
続いて
-
.gitignore
からdist
を外す -
github
にリポジトリを作成
git init
git add .
git commit -m 'init'
git remote add origin https://github.com/xxxxxxx/xxxxxx.git
git push -u origin master
-
git
にpush
した後は、Settings
をクリック -
GitHub Pages
のSource
をmaster branch
にしてsave
これで、GitHub Pages
に公開されます。
公開されたURLは、
https://<ユーザー名>.github.io/<リポジトリ名>/dist/
になります。
LIFFの設定
まずは LIFF npm パッケージをインストールします。
npm install -g liff
liff init
で初期化します。上記で取得したチャネルのアクセストークンを入れます。
liff init <アクセストークン>
LIFF アプリケーションの登録します。今回はtall
を指定します。
liff add https://<ユーザー名>.github.io/<リポジトリ名>/dist/ tall
戻り値から LIFF ID および Accessible URL をコピーしておきます。
[LIFF ID] xxxxxxxxxxxxxxx created
accessible uri : line://app/xxxxxxxxxxxxxxxx
liff send
コマンドでリンクを送付します。LINE アプリよりリンクをクリックしてテスト。上記で取得したLIFF ID
とYour user ID
を入れます。
liff send <LIFF ID> <Your user ID>
BOTより送られたリンクを確認して、フォームから送信を押してメッセージが表示されれば完了です!
ブラッシュアップ
リンクのクリックから起動させるのではなく、BOTのリッチメニューかLIFFを起動させると、より良いでしょう。
リッチメニューの実装は以下を参考にしてください。
https://developers.line.me/ja/docs/messaging-api/using-rich-menus/
-
LINE@マネージャーからログインして作成したBOTを選択します。
-
リッチメニューより、メニューを作成します。
-
コンテンツ設定
のリンク
を上記で取得したAccessible URL
に設定します。
これでメニューからLIFFを起動させることができます。
まとめ
LIFFが起動すると結構感動しますね(笑)
Vue内部でLIFFの設定を行いたかったのですが、なかなかうまくできず断念しました。
@line/bot-sdkを利用すればできたのかもしれません・・・。
次はバックエンドのGAS(Google Apps Script)の設定になります。