Node.js
linebot

【Node.js】LINE Messaging APIのURLスキームを使ってメンヘラ彼女BOTを実装する

カメラや位置情報を実行させるURLスキーム

昨日(11月27日)LINEからMessaging APIの新機能URLスキームが公開されました。

正確にはLINEにはもともとあった機能ですが、開発向けに仕様が公開されました。

できること

カメラを開く、位置情報画面を開く、スタンプショップを開く、、などなどLINEアプリのさまざまなコンテンツを開くことができます。

スクリーンショット 2017-11-29 1.40.09.png

URLスキームの公式ドキュメントでそれぞれのURLスキームを確認してみてください。

筆者の環境

  • Node.js v9.2.0
  • npm 5.5.1
  • macOS X El Capitan 10.11.6

メンヘラ彼女を実装

新機能を活用してBOTを作りました。

  • 彼女のメンヘラが発動します(位置情報画面を開く) IMG_6078.PNG

※1対1のトークでのみ利用できます

  • 位置情報を送信する画面が開きます
  • IMG_6079.PNG


  • 場所だけでは納得しない様子です(カメラ起動) IMG_6081.PNG


  • カメラが起動し写真を送ることができます

IMG_6084.PNG

pepperと一緒で安心しました。以上です。

実装

位置情報はこんな感じでボタンテンプレートのなかに埋め込んでいます。

let pushSendMessageObject = [{
  "type": "template",
  "altText": "this is a buttons template",
  "template": {
      "type": "buttons",
      "title": "ねえ今どこ?10秒以内に答えて。",
      "text": "Please select",
      "actions": [
          {
            "type": "uri",
            "label": "すぐに答える",
            "uri": "line://nv/location"
          },
          {
            "type": "postback",
            "label": "別れよう",
            "data": "action=cancel&selectId=2"
          },
      ]
  }
}];

レスポンスはこんな感じ。
スクリーンショット 2017-11-28 18.49.30.png

カメラ起動の方もボタンに埋め込み。

if (WebhookEventObject.message.type === 'location') {
  SendMessageObject = [{
    "type": "template",
    "altText": "this is a buttons template",
    "template": {
        "type": "buttons",
        "title": `${WebhookEventObject.message.address}かぁ。誰といるの?`,
        "text": "Please select",
        "actions": [
            {
              "type": "uri",
              "label": "証拠を撮る",
              "uri": "line://nv/camera/"
            },
            {
              "type": "postback",
              "label": "やっぱり別れよう",
              "data": "action=cancel&selectId=2"
            },
        ]
    }
  }];

レスポンスはこんな感じ。
スクリーンショット 2017-11-29 1.29.36.png

contentエンドポイントからバイナリデータを取得します。

画像解析とかしてレスポンスを変えたら楽しそう。「その女だれ?」とか。。

BOT開発TIPS

  • LINE DeveloperのUIめっちゃ変わってました。わかりやすいです。 https://gyazo.com/ddd135c4362e25ad5b681880b41fd85d


  • LINE BOT作成の詳しい手順は下記で紹介されています。

1時間でLINE BOTを作るハンズオン (資料+レポート) in Node学園祭2017 #nodefest

ローカルの検証にはngrok、デプロイにはnowがまじで便利です。


  • Node.jsのSDKが公開されました

使うともっと幸せになれるはずです。

GitHub: line/line-bot-sdk-nodejs

  • メンヘラっぽい写真を添えれば精度マシマシです。 スクリーンショット 2017-11-28 15.57.44.png

まとめ

彼氏のTwitterと連動してpush発火させたりしたら楽しそう。

BOT開発たのしい。