LINEミニアプリ

Hello Worldミニアプリの中で変数やLINE内で表示する箇所を取り扱う

前回

LINEミニアプリ「HelloWorld」をLINEで表示するまでの手順をまとめました。

ここでは前回までの、LINEミニアプリ「HelloWorld」がLINEで表示ができていることを前提に進めます。

LIFF SDKを使ってできること

<script src="https://static.line-scdn.net/liff/edge/2/sdk.js"></script>

Hello,Worldミニアプリでは、LIFF SDKを読み込んでいます。これを使うと下記のようなことができます。

  • ユーザー情報取得(liff.getProfile()でユーザーIDや名前を取得)。
  • トークへのメッセージ送信(liff.sendMessages())。
  • 認証状態の確認(liff.isLoggedIn())。

こんにちは、〇〇さんを表示する

※「おい」は私のLINE BusinessIDと紐づけられたアカウントのユーザー名

LIFF SDKを使用して、サンプル画面のようにQRコードを読み取った人のLINEアカウント情報を使用して、画面上に表示する方法の説明になります。

ウェブアプリ設定の確認

LINE Developersで以下の設定を確認、設定する。

スコープの使用設定を確認

ウェブアプリ設定のScopeの箇所でprofileを設定しておく必要がある。有効にしておくことで、プロフィール情報を取得することができるようになる。

WEBブラウザ誘導設定

また、LINEミニアプリでは、LINE未使用ユーザーにたいして、WEBブラウザに誘導する機能があります。
その場合、「こんにちは、ゲストさん」のような分岐があると親切です。

公式ドキュメント:LINEをインストールしていない場合の動作

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HelloWorld - LINE Mini App</title>
    <script src="https://static.line-scdn.net/liff/edge/2/sdk.js"></script>
</head>
<body>
    <h1>HelloWorld</h1>
    <p>LINEミニアプリのテストです!</p>
    <div id="greeting"></div> <!-- プロフィール表示用のコンテナ -->

    <script>
        async function initializeLiff() {
            const greetingElement = document.getElementById('greeting');
            try {
                // LIFF初期化
                await liff.init({ liffId: '2025123456-0abcdef12' });
                console.log('LIFF initialized');
                
                // LINEユーザー向け: プロフィール取得
                const profile = await liff.getProfile();
                greetingElement.innerHTML = `<p>こんにちは、${profile.displayName}さん</p>`;
            } catch (error) {
                console.error('LIFF initialization failed', error);
                // 非LINEユーザー向け: フォールバック表示
                greetingElement.innerHTML = `<p>こんにちは、ゲストさん</p>`;
            }
        }

        // ページ読み込み時にLIFFを初期化
        window.onload = initializeLiff;
    </script>
</body>
</html>

liff.getProfile()

現在のユーザーのプロフィール情報を取得します。
(なお取得できる情報はメインプロフィールのみです。ユーザーのサブプロフィールは取得できません。)

公式ドキュメント参照:https://developers.line.biz/ja/reference/liff/#get-profile

ここからユーザーのIDや表示名が取得できます。今回はこの表示名を使用しています。

分岐で「こんにちは【表示名】さん」か「こんにちは、ゲストさん」のどちらかをgreetingの箇所に表示されるように設定します。

結果

LINEから表示した場合

QRコードを読み取ってLINEアプリから確認すると、確認しているユーザーのプロフィール表示名が確認できる。

WEBブラウザ上で確認した場合

非LINEユーザーや初期化失敗時に「こんにちは、ゲストさん」と表示される。

  • この記事を書いた人

ゆず

■忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
■サイト運営費のためGoogleAdsenseをいれています。
gifteeを贈る / コーヒーをおごる / mail

1

outlookを最小化すると勝手に終了してしまう outlookを最小化すると勝手に終了してしまうと相談されたけど実はそれ勝手に閉じてるわけじゃなくて、おそらく「最小化時にアイコン化する設定」になって ...

2

前提 自分用ブックマークサイトとして使用しているてがろぐに、いいねボタンをつけようという狙いです。なので、てがろぐのセットアップは終了し稼働しているものとします。 配布ページのマニュアルを参考に進めま ...

3

感想をもっと手軽に、お気軽に。 https://labo.01kawa.com/kansou 素敵なフォロー、フォロワー、創作作家さんに作品の感想を送りたい…!が、語彙力がないという方向けの感想メーカ ...

-LINEミニアプリ