Help us understand the problem. What is going on with this article?

LINE Beaconを持ったアイドルを探し回るイベント

More than 3 years have passed since last update.

概要

地図と「通知」だけを頼りに、アイドルを探す。見事、発見したら一緒に写メが撮れる――そんな宝探しみたいなイベントが元旦の歌舞伎町で行われました。

実施したのは、原宿を拠点に活動するアイドルグループの・・・・・・・・・。
LINE Beaconを持った彼女たちを、オタクがスマホ片手に探し回ります。LINEに「そばにいるよ」と通知がくれば、アイドルが近くにいる証拠。画面と現実世界を交互ににらめっこする姿は、ポケモンGOさながらです。

LINE Beacon。LINEが開発した、10m圏内に信号を発信する装置です。
この信号を捉えることで「Beaconの10m圏内に近づくと、LINEに通知が届く」機能が実現しました。
あとは、Beaconをアイドルに持たせるだけ。
「アイドルがそばにいる」と教えてくれるLINEアカウント、0ズレの完成です。

スクリーンショット 2017-01-04 16.44.19.png

・・・・・・・・・とは

「個性を剥ぎ取ろうと思っている」

・・・・・・・・・とは、アイドグループです。「どっつ」や「てんきゅー」などと呼ばれますが、正式な呼称はありません。各々が好きな読み方をすればいいというコンセプトです。

メンバーは・と称されます。・に個人名はありません。公式Twitterにおけるメンバーのツイートにも個々人の署名はなく、「文章からにじみ出る個性で見分けろ」というスタンス。衣装はサングラスのようなもので顔が隠れたもの。

その意図について、運営はこう説明しています。

個性を剥ぎ取ろうと思っているんですよ

常に纏えるアイドル

HeartSyncというアプリを使うと・の今の心拍数がわかります。また、androidから公式サイトにアクセスし・をクリックすると、リアルタイムの心拍に合わせてスマホが振動します。

運営のインタビューからの引用

このスマホは見るものではなく触るためのガジェットです。触覚的に、直で推しの実体が、編集の入らない生そのものがやってくる。

僕たちはモニター抜きでアイドルと遠隔でつながることができるんじゃないかと考えていて。メディア環境の変化に応じてアイドルも変化してきた歴史があって、僕たちも動画サイトとSNS以降の対応すべき情報環境、つまりIoT時代や「ポケモンGO!」=都市の風景を拡張するAR時代の先に行きたいと思っています。言い方が難しいんですけど「今会えるアイドル」じゃなくて「常に纏える(まとえる)アイドル」を作りたいんです。

・・・・・・・・・のコンセプトが気になった方は引用元のインタビュー過去のオーディションHPを読んでみてください。

イベントのレポート

1/1 13:00
閑散とした歌舞伎町。お正月の昼ということもあり、あまり怖い雰囲気はありませんでした。

IMG_2347.JPG

13:20
イベント開始。参加人数は・が5名、オタクが7名。・は2名と3名の2グループに別れる。前者はBeaconを1個、後者は2個所有。
この地図のエリア外には出ないというルールがあるため、見つけるのはそれほど難しくはないはず。

IMG_2337.JPG

13:30
ずっと「通知こないかなー」とiPhoneとにらめっこしながら、ウロウロ歩き回る。
なかなか届かない通知。
そんなとき、もっとも恐れていた事態が!

スクリーンショット 2017-01-04 16.50.25.png

通知がくるまえに見つけちゃった……(´・ω・`)

「そういうことじゃないんだよ!」と嘆くオタクのAさん。
この後も、2人グループのBeacon信号は「僕のiPhoneには」届きませんでした(まとめの項にて詳述)。

13:41
企画倒れになるのではと戦々恐々していた、そのとき!

スクリーンショット 2017-01-04 17.00.36.png

キタ━━━━━m9( ゚∀゚)━━━━━ッ!!!!!

スクリーンショット 2017-01-04 17.17.46.png

ぞくぞくと・を発見するオタたち

14:30
終了

実装

コールバックRubyプログラムを叩いて、あらかじめデータベースに登録しておいたBeacon機種ID(hwid)別の返信メッセージを返します。

callback.rb
require 'sinatra'
require 'line/bot'
require 'pg'

def client
  @client ||= Line::Bot::Client.new { |config|
    config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
    config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
  }
end

post '/callback' do
  connection = PG::connect(:host => ENV["POSTGRESQL_HOST"], :user => ENV["POSTGRESQL_USER"], :password => ENV["POSTGRESQL_PASSWORD"], :dbname => ENV["POSTGRESQL_DBNAME"], :port => "5432")

  begin
    body = request.body.read
    timestamp = Time.at(JSON.parse(body)["events"][0]["timestamp"]/1000.0)
    user_id = JSON.parse(body)["events"][0]["source"]["userId"]
    event_type = JSON.parse(body)["events"][0]["type"]

    signature = request.env['HTTP_X_LINE_SIGNATURE']
    unless client.validate_signature(body, signature)
      error 400 do 'Bad Request' end
    end

    events = client.parse_events_from(body)
    events.each { |event|
      case event
      when Line::Bot::Event::Beacon
        hwid = JSON.parse(body)["events"][0]["beacon"]["hwid"]
        result = connection.exec("select idol_name,idolgroup_name,reply_message from beacon where hwid=$1",[hwid])
        idolgroup_name = result[0]["idolgroup_name"]
        message = {type:'text',text:"0ズレ!#{idolgroup_name}が30m以内にいるよ!「#{result[0]["reply_message"]}」"}

        result_insert = connection.exec("insert into event (user_id,timestamp,event_type,idolgroup_name,hwid,reply_message) values ($1,$2,$3,$4,$5,$6)",[user_id,timestamp,event_type,idolgroup_name,hwid,message[:text]])
        client.reply_message(event['replyToken'], message)
      end
    }
  ensure
    connection.finish
  end
    "OK"
end

まとめ

課題

今回Beaconを3つ使ったのですが、僕のiPhoneはそのうちの1つ(3名グループのBeacon)からしか、信号を受け取りませんでした。
いっぽう、すべてのBeaconから信号を受信した方もいました。
事前のテストでは僕もすべてのBeaconから受信できていたので、何が原因で阻害されてしまったのかを、特定していきたいです。

今後

プライバシーや信号の受信、ユーザーが使うまでの設定が多いなど課題の多いLINE Beaconですが、今回のように1.短時間で 2.場所を限定し 3.参加者に利用する動機づけがされた イベントでは有用だと思います。

今後もBeaconのワクワクする使いみち探っていきます。

a-r-i
「アイドル×テクノロジー」をテーマに、アイドルグループと共同でイベント・作品づくりをしています。 「アイドルの睡眠データを3Dプリンタでオブジェ化」 「アイドルとオタクがBitcoinで永久に消えないメッセージを刻む」 「過去にアイドルが居た場所に近づくとスマホが震えるアプリ」 お気軽に連絡ください。
https://github.com/a-r-i
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away