Share Target Pickerで友だちにメッセージ送信が可能になりました #LINE_API

神アップデートキター。LIFF v2でShare Target Pickerを利用したユーザー間メッセージ送信ができるようになりました。
2020.03.04

はじめに

こんにちは、中村です。本日は LIFF の神アップデートがありましたー!

Share Target Picker がリリースされ、LIFF アプリからのメッセージ送信が大幅に強化されました。

Share Target Picker では、LIFF から友だちへメッセージを送信することができます。従来まではトークルーム内で LIFF を開いた時にsendMessages()を利用してメッセージのシェアは可能でした。しかし友だちとのトークルーム内で開くユースケースは非常に限定的のため結果的にリンクをコピーして送るなどだったかと思います。今回のアップデートで LIFF アプリにてメッセージオブジェクトをメッセージ送信ができるようになりました。

Share Target Picker

liff.shareTargetPicker() で具体的な実装方法を確認できます。

シェアターゲットピッカーは、iOS版とAndroid版のLINE 10.3.0以降でサポートされます。

LINE Developers で LINE ログインチャネルを作成し、LIFF を登録します。LIFF アプリ一覧にシェアターゲットピッカーのスイッチが追加されてますので、有効化します。情報利用に関するお願いに同意して有効化が出来るようになります。ご覧の通り LIFF アプリではなく LINE ログインチャネル全体に権限が付与されるようです。

無効化した場合は、先に同意した項目も無効化されます。また有効化するタイミングで同意をしてください。

それではサンプルコードで挙動を見ていきましょう。このサンプルでは下記の機能を提供しています。

  • LIFF の初期化
  • 非ログイン時に LINE ログイン(LINE ログインについては外部ブラウザのみ起動します)
  • シェアターゲットピッカーでメッセージ送信
<!doctype html>
<html>
<head>
 <meta charset="utf8">
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <title>Share Target Picker Sample</title>
</head>

<body>
 <h1>Share Target Picker</h1>
 <button id="send">Share Target Picker</button>
 <p id="success"></p>
 <p id="error"></p>
 <script src="https://static.line-scdn.net/liff/edge/2.1/sdk.js"></script>
   :
   : 
</body>
</html>

JavaScriptだけ抜粋しておきます。

liff.init(
 {
  liffId: 'LIFF_ID'
 }
).then(() => {
 if (!liff.isLoggedIn()) {
  liff.login();
 }
 document.getElementById('send').addEventListener('click', send);
}).catch((error) => {
 document.getElementById('error').innerText = 'Error from LIFF: ' + error;
});

function send() {
 liff.shareTargetPicker([{
  'type': 'text',
  'text': 'Hello, World! from SHare Target Picker App...'
 }]).then(
  document.getElementById('success').innerText = 'Launched Share Target Picker'
 ).catch((error) => {
  document.getElementById('error').innerText = 'Error from Share Target Picker: ' + error;
 })
}

iOS ではまだ LINE App 10.3.0 はリリースされてないので、PC で確認してみます。特段送信完了のアクションなどはありません。今のところ送信したかどうかをアプリケーション側で取得できないからです。

LINEのターゲットを確認してみると実装通りにメッセージの送信ができています。

現状では、誰にメッセージを送信したかなどはアプリケーション側からはわからないようです。そのため特定の個人に利用してもらいたいもの(例えば購入したチケットなど)については、メッセージ送信時に PIN コードなどを用意して入力させる、送信者側で対象となるものの権限を奪えるようにするなどのケアが必要かと思います。パブリックなコンテンツの共有は問題なく、従来よりもリッチにメッセージが送信できるようになったと思います。

まとめ

現在は先行して、ジョルダン乗り換え案内、Louis Vuitton の 2 社がミニアプリ上で同機能を提供しているようです。より理解が深まると思いますのでぜひ利用してみてください。アプリでの利用が 10.3.0 以降ですのでアプリのアップデートが楽しみな LIFF の新機能追加でした。他にも LIFF SDK の機能が増えているのでどこかで紹介できればと思います。