はじめに
はじめまして、こんにちは。
テラスカイの宮崎と申します。
今まで、このブログの中でも、LINE公式アカウントの機能や活用方法などについての記事が
投稿されていますが、今回は「LIFF」という、LINEのプラットフォームを利用して、LINEと連動したWebページの作成手順について、記載します。
テラスカイの宮崎と申します。
今まで、このブログの中でも、LINE公式アカウントの機能や活用方法などについての記事が
投稿されていますが、今回は「LIFF」という、LINEのプラットフォームを利用して、LINEと連動したWebページの作成手順について、記載します。
LIFFとは?
LIFF(LINE Front-end Framework)とは、LINEのユーザ情報 (IDやアイコン、表示名など) をWebサイト上で取得できる仕組みです。
あらかじめ、LINEの公式アカウント側に設定が必要ですが、Webサイトのスクリプトから専用のSDK経由で、LINEのユーザプロフィールを取得できます。
利用例としては、
LINEのIDを用いて本人特定を行い、店舗の会員証を表示する
収集したLINEのIDを対象に、プッシュ通知を行う
アイコンと名前を使って、イベント出欠ページなどを作る
など、これまでモバイルアプリで実現してきた機能が、Webサイト上で実現できるようになります。
あらかじめ、LINEの公式アカウント側に設定が必要ですが、Webサイトのスクリプトから専用のSDK経由で、LINEのユーザプロフィールを取得できます。
利用例としては、
LINEのIDを用いて本人特定を行い、店舗の会員証を表示する
収集したLINEのIDを対象に、プッシュ通知を行う
アイコンと名前を使って、イベント出欠ページなどを作る
など、これまでモバイルアプリで実現してきた機能が、Webサイト上で実現できるようになります。
Salesforce上で、LIFFアプリを作成してみよう
ここからは、Salesforceのサイト機能を使って、実際にLIFFアプリを作成する手順を紹介します。
あらかじめ、LINEの公式アカウントを作成しておく必要がありますので、「【初心者向け】LINE公式アカウントの機能や注意点、活用方法まとめ」の記事を参考に、アカウントを作成しておいてください。
あらかじめ、LINEの公式アカウントを作成しておく必要がありますので、「【初心者向け】LINE公式アカウントの機能や注意点、活用方法まとめ」の記事を参考に、アカウントを作成しておいてください。
1. プロバイダーとチャネルの作成
LIFFなど、公式アカウントと連携したサービス開発を行うには、チャネルとプロバイダーの作成が必要です。
チャネルは、公式アカウントと連携するための通信路を指します。
プロバイダーは、チャネルを管理する組織情報です。
下図のように、公式アカウントの管理画面から「設定」⇒「Messaging API」⇒「Messaging APIを利用する」のボタンを押下します。
チャネルは、公式アカウントと連携するための通信路を指します。
プロバイダーは、チャネルを管理する組織情報です。
下図のように、公式アカウントの管理画面から「設定」⇒「Messaging API」⇒「Messaging APIを利用する」のボタンを押下します。
プロバイダー選択画面が表示されますので、新規でプロバイダーを作成するか、既存のプロバイダーを選択します。
プロバイダーと、チャネル(Messaging APIチャネル)が作成されます。
以降は、LINE Developer Console にログインして操作します。
以降は、LINE Developer Console にログインして操作します。
LINE Developer Console上で、LIFFを呼び出すためのチャネルを作成します。
チャネルには、いくつか種類がありますが、LIFFを呼び出すには、「ログインチャネル」を作成します。
チャネルには、いくつか種類がありますが、LIFFを呼び出すには、「ログインチャネル」を作成します。
入力画面に従って、チャネル情報を入力します。
「アプリタイプ」を選択する欄では、「ウェブアプリ」を選択してください。
「アプリタイプ」を選択する欄では、「ウェブアプリ」を選択してください。
チャネルを作成したら、次にLIFFアプリの登録を行います。
チャネルのメニューから「LIFF」を選択して、「追加」ボタンを押します。
チャネルのメニューから「LIFF」を選択して、「追加」ボタンを押します。
入力画面に沿って、LIFFアプリの情報を入力します。
サイズ:
LINEからLIFFアプリを開くときのサイズです。 こちらを参考にしてください。
エンドポイントURL:
LIFFアプリとして呼び出すサイトのURLです。現時点では、まだサイトは作成していないので、httpsで始まる任意のURLを入力してください。(後で変更します)
スコープ:
LIFFで参照するLINEの情報を指定します。LINEのプロフィール画像や、名前などを取得する場合は「profile」を選択してください。
ボットリンク機能:
はじめてLIFFを開くときに、「LINE公式アカウントを友だち追加するオプションを表示するか」を選択します。よくわからない場合は、On(Normal)を選択してください。
サイズ:
LINEからLIFFアプリを開くときのサイズです。 こちらを参考にしてください。
エンドポイントURL:
LIFFアプリとして呼び出すサイトのURLです。現時点では、まだサイトは作成していないので、httpsで始まる任意のURLを入力してください。(後で変更します)
スコープ:
LIFFで参照するLINEの情報を指定します。LINEのプロフィール画像や、名前などを取得する場合は「profile」を選択してください。
ボットリンク機能:
はじめてLIFFを開くときに、「LINE公式アカウントを友だち追加するオプションを表示するか」を選択します。よくわからない場合は、On(Normal)を選択してください。
LIFFを登録すると、"123456-abcd" のような、LIFFのIDが発行されます。
このIDは、LIFFのSDK利用時 (後述) に必要なので、メモしておきます。
このIDは、LIFFのSDK利用時 (後述) に必要なので、メモしておきます。
2. LIFFアプリとなるVisualforceページの作成とサイトでの公開
いったん、LINEのコンソールから離れて、今度はLIFFアプリの本体となるVisualforceページを作成します。
Visualforceページを作成したら、LIFFのSDKを、header部分でCDN指定して読み込みます。
Visualforceページを作成したら、LIFFのSDKを、header部分でCDN指定して読み込みます。
<script src="https://static.line-scdn.net/liff/edge/2/sdk.js"></script>
XXX.page
liff.init() で、LIFFの初期化を行います。
初期化が完了したら、liff.getProfile() で、LINEのプロフィール情報が取得できます。
📌ポイント
liff.init() を実行する際に、LIFFのIDが必要です。カスタムラベルなどに定義しておくのがよいと思います。
LIFFのAPIは、こちらを参照してください
初期化が完了したら、liff.getProfile() で、LINEのプロフィール情報が取得できます。
📌ポイント
liff.init() を実行する際に、LIFFのIDが必要です。カスタムラベルなどに定義しておくのがよいと思います。
LIFFのAPIは、こちらを参照してください
let userId= null; let displayName= null; let pictureUrl = null; let statusMessage = null; window.onload = function () { liff .init({ liffId: "{!$Label.LiffID}" }) .then(() => { getProfile(); }) .catch((err) => { alert("liff init error : " + err); }); } getProfile = function () { liff.getProfile() .then(profile => { userId= profile.userId; displayName= profile.displayName; pictureUrl = profile.pictureUrl; statusMessage = profile.statusMessage; }) .catch((err) => { alert("liff getProfile error : " + err); }); }
XXX.page
プロフィールから取得できる情報は、下記のものです。
ユーザID(userId)
LINEのアプリで表示されるIDとは異なります。プロバイダーごとに発行されるUで始まる33桁の文字列です。
このIDを用いて、LINEのAPI経由でメッセージを送ることができます。
表示名(displayName)
LINEアプリ利用時に表示されるユーザ名です。
画像URL(pictureUrl)
LINEアプリ利用時に表示されるアイコン画像のURLです。
ステータスメッセージ(statusMessage)
LINEアプリ利用時に表示されるステータスメッセージです
ユーザID(userId)
LINEのアプリで表示されるIDとは異なります。プロバイダーごとに発行されるUで始まる33桁の文字列です。
このIDを用いて、LINEのAPI経由でメッセージを送ることができます。
表示名(displayName)
LINEアプリ利用時に表示されるユーザ名です。
画像URL(pictureUrl)
LINEアプリ利用時に表示されるアイコン画像のURLです。
ステータスメッセージ(statusMessage)
LINEアプリ利用時に表示されるステータスメッセージです
今回は、取得したプロフィール情報を、画面に出すところまで、とします。
最終的なVisualforceのソースコードは、下記のようになります。
最終的なVisualforceのソースコードは、下記のようになります。
<apex:page cache="false" showHeader="false" sidebar="false" standardStylesheets="false" applyHtmlTag="false" applyBodyTag="false"> <head lang="ja"> <script src="https://static.line-scdn.net/liff/edge/2/sdk.js"></script> <style> .info{ font-size : 32px; } </style> </head> <body> <p class="info">UserId:<span id="userId"></span></p> <p class="info">DisplayName:<span id="displayName"></span></p> <p class="info">StatusMessage:<span id="statusMessage"></span></p> <img src="" id="picture" width="200" height="200"></img> <script> let userId= null; let displayName= null; let pictureUrl = null; let statusMessage = null; window.onload = function () { liff .init({ liffId: "{!$Label.LiffID}" }) .then(() => { getProfile(); }) .catch((err) => { alert("liff init error : " + err); }); } getProfile = function () { liff.getProfile() .then(profile => { userId= profile.userId; displayName= profile.displayName; pictureUrl = profile.pictureUrl; statusMessage = profile.statusMessage; document.getElementById("userId").innerHTML = userId; document.getElementById("displayName").innerHTML = displayName; document.getElementById("statusMessage").innerHTML = statusMessage; document.getElementById("picture").src = pictureUrl; }) .catch((err) => { alert("liff getProfile error : " + err); }); } </script> </body> </apex:page>
XXX.page
Visualforceのページを作成したら、サイトに登録します。
サイトに登録したら、「LINE Developer Console」⇒「ログインチャネル」⇒「LIFFの設定画面」に戻りサイトURLをLIFFのエンドポイントURLに指定します。
📌ポイント
LIFFのエンドポイントに指定するURLは、httpsで登録する必要があります。サイトURLを転記する際には、httpsで登録しましょう。
📌ポイント
LIFFのエンドポイントに指定するURLは、httpsで登録する必要があります。サイトURLを転記する際には、httpsで登録しましょう。
LIFFを呼び出すためには、LINEログインチャネルを「公開」する必要があります。
忘れがちなので、注意が必要です。
忘れがちなので、注意が必要です。
3. LIFFアプリの呼び出し
では、作成したLIFFアプリを呼び出してみましょう。
LINEのアプリから、LIFFアプリのURLを開くのですが、ここではリッチメニューから呼び出してみます。
LINEのアプリから、LIFFアプリのURLを開くのですが、ここではリッチメニューから呼び出してみます。
公式アカウントの管理画面のメニューから「ホーム」⇒「リッチメニュー」を選択します。
リッチメニューの設定を入力していきます。タイトルや表示期間などを入力したら、「コンテンツ作成」の「テンプレートを選択」ボタンを押し、リッチメニューのテンプレートを選択します。
テンプレートを選択した後、メニューに表示する画像を設定します。
通常は、メニュー用に作成した画像をアップロードして設定しますが、テキスト入力も可能です。
今回は「LIFF起動」というテキストを指定しようと思うので、画像設定画面の「T」を選択して、テキストを入力してください。
通常は、メニュー用に作成した画像をアップロードして設定しますが、テキスト入力も可能です。
今回は「LIFF起動」というテキストを指定しようと思うので、画像設定画面の「T」を選択して、テキストを入力してください。
「アクション」欄に、LIFFのURLを指定して、リッチメニューの完成です。
4. 動作確認
LINE公式アカウントのトークルームに、リッチメニューが追加されていますので、そこからLIFFを呼び出します。
下図のように、「ID」「表示名」「ステータスメッセージ」「アイコン画像」が表示されていればOKです。
下図のように、「ID」「表示名」「ステータスメッセージ」「アイコン画像」が表示されていればOKです。
おわりに
簡単ではありますが、LIFFの開発方法について、まとめてみました。
LIFFを使えば、LINEと連携したユーザ認証や、メッセージのpush通知など、これまでモバイルアプリで行っていたことが、Webアプリでできるようになります。
LINE公式アカウントの利用とともに、これからLIFFの活用も広がってくると思いますので、この記事を参考に、LIFFに触れてみてください。
LIFFを使えば、LINEと連携したユーザ認証や、メッセージのpush通知など、これまでモバイルアプリで行っていたことが、Webアプリでできるようになります。
LINE公式アカウントの利用とともに、これからLIFFの活用も広がってくると思いますので、この記事を参考に、LIFFに触れてみてください。
52 件