💡

【LIFF / LINEミニアプリ】Share Target Pickerがエラーになる場合の対処法

2 min read

こんにちは!BULBの加藤です。

LINEログインやMessageAPIなど、LINEまわりの開発で詰まった部分やその他のナレッジをメモしていきます。

シェアターゲットピッカーが動作しない

LIFF上からグループ・友だちにメッセージを送信させたいとき、シェアターゲットピッカー「liff.shareTargetPicker()」を使用します。(https://developers.line.biz/ja/reference/liff/#share-target-picker)

liff.shareTargetPicker([{
	'type': 'text',
	'text': 'Hello, World!'
}])

スターターアプリを試している際に一瞬動作せず「?」となりました。対処法をメモしておきます。

コンソールで「シェアターゲットピッカー」をONにする

シェアターゲットピッカーはデフォルトでは無効になっています。これを有効にしなければ使うことができません。
シェアターゲットピッカーの設定はコンソールから簡単に変更できます。

トグルをONにするだけ!

LINE Developersにログインし、コンソール( https://developers.line.biz/console/ )から該当のチャネルへ。「LIFF」タブを押すとシェアターゲットピッカーの有効 / 無効を変更できます。

有効化する場合には情報利用に関する同意が必要なので、「上記の事項に同意する」にチェックを入れて有効化を完了しましょう。

実際に有効化が反映されるまでは10秒くらいかかりました。

liff.isApiAvailable()で条件分岐させておく

コンソールで有効化されていてもシェアターゲットピッカーの取得自体が失敗することもあります。

公式リファレンスのように、エラーを判別するために「liff.isApiAvailable」で条件分岐しておきましょう。

if (liff.isApiAvailable('shareTargetPicker')) {
            liff.shareTargetPicker([{
                'type': 'text',
                'text': 'Hello, World!'
            }]).then(
         //shareTargetPickerの取得に成功       
		document.getElementById('shareTargetPickerMessage').textContent = "Share target picker was launched."
            ).catch(function (res) {
	 //「シェアターゲットピッカー」が有効になっているが取得に失敗した場合 
		document.getElementById('shareTargetPickerMessage').textContent = "Failed to launch share target picker.";
            });
        } else {
	//「シェアターゲットピッカー」が無効になっている場合
            document.getElementById('shareTargetPickerMessage').innerHTML = "<div>Share target picker unavailable.<div><div>This is possibly because you haven't enabled the share target picker on <a href='https://developers.line.biz/console/'>LINE Developers Console</a>.</div>";
        }

Discussion

ログインするとコメントできます