31
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-11-28

カメラや位置情報を実行させる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開発たのしい。

31
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?