川のブログ

川の適当気ままなブログです。 

LINE Beaconを使ってみた

こんにちはかわです。

アドベントカレンダー4日目です。

前日web系をやりたいと言ってましたが、

作品のクオリティUPに舵をきります。

去年のLINEBOTの勉強会に行った際、

もらって使ってなかったので使いたいと思います。

LINE Beaconとは

f:id:nakanaka1826:20171204180616j:plain これがLINE Beaconです。

f:id:nakanaka1826:20171204180622j:plain 中身はこんな感じ

電源を入れると緑のランプが光りました。f:id:nakanaka1826:20171204181116j:plain

このBeaconは、

Beaconと紐づけされているBotと友達になっているアカウントが

Beaconの利用範囲に入った際にWebhockイベントがトリガされます。

いまから使い方を説明します。

前提

まず前提としてLINE Botを作ってください。

Messaging APIを利用するには

上記のURLに公式の説明が載っています。

近々記事にします。

BotとBeaconの紐付け

https://admin-official.line.me/beacon/register

このページにとんでください。

するとこの画面が出ます。

f:id:nakanaka1826:20171204195133p:plain

Beaconを作成することもできるみたいです。

興味がある方はこちらのページを

engineering.linecorp.com

今回は連携なので「ビーコンとbotの連携」を選択

f:id:nakanaka1826:20171204195317p:plain

すると自分が作成しているBotが出てきます。

いずれかを選択すると、

f:id:nakanaka1826:20171204195400p:plain

この画面が出てくるので、

Beaconに記載されているIDとパスコードを入力してください。

これで、連携が完了しました。

スマートフォン側での設定

スマートフォン側での設定も必要です。

設定ー>プライバシーの管理を選択

f:id:nakanaka1826:20171204200458p:plain

一番下のLINE Beaconの利用にチェックをつける

f:id:nakanaka1826:20171204200502p:plain

LINE Beaconを使用する際はBluetoothをオンにしておく必要があります。

サンプル作り

設定は一通り終えたのでサンプルを作ります。

リファレンスはこちらから

APIリファレンス

これを参考に作っていきます。

f:id:nakanaka1826:20171204203018p:plain

ビーコン部分の抜粋です。

イベントのタイプでバナーってあるんですけど、

それはこれです。

f:id:nakanaka1826:20171204203229p:plain

緑の部分です。

この機能はエンタープライズ ユーザーのみに開放されているらしいです。

使うのは「enter」のみっぽいね。

作ったものはこれです。

<?php
    $accessToken = ACCESS_TOKEN;
    $json_string = file_get_contents('php://input');
    $jsonObj = json_decode($json_string);
    $replyToken = $jsonObj->{"events"}[0]->{"replyToken"};     //ReplyToken取得
    $userId = $jsonObj->{"events"}[0]->{"source"}->{"userId"};        //userId取得
    $eventType = $jsonObj->{"events"}[0]->{"type"};  //typeの取得
    if($eventType == "beacon"){
      ResponseLineText( $accessToken, $replyToken, "僕との距離が近づいてきました!!" );
    }
    function ResponseLineText($accessToken,$replyToken,$text){
        $response_format_text = [
          "type" => "text",
          "text" => $text
        ];
        $post_data = [
           "replyToken" => $replyToken,
           "messages" => [$response_format_text]
        ];
        $ch = curl_init("https://api.line.me/v2/bot/message/reply");
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data));
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: 
        application/json; charser=UTF-8','Authorization: Bearer ' . $accessToken));
        $result = curl_exec($ch);
        curl_close($ch);
     }
?>

Beaconを検知したらメッセージを送ります。

f:id:nakanaka1826:20171204235532p:plain

でもちょこちょこ通信が切れたらしく

f:id:nakanaka1826:20171204235540p:plain

連続してきました。

怖い

まとめ

こんな感じでできました。

やれる幅は広そうです。

Beaconは作れるらしいのでそっちの方もいつか挑戦してみたい。

以上です。

これからやりたいこと・やること

こんにちはかわです。

アドベントカレンダー三日目です。

ちょっと今日はこれからやること、やりたいことをまとめます。

明日がテストなので手抜きになります。ごめんなさい。

Mashup Awardの出場作品のクオリティUP

hacklog.jp

部門賞は普通に落ちたのですが、展示会の方には出せるらしいです。

しかし、交通費が馬鹿になりません。

企業賞の結果しだいにはなりますが、とりあえずクオリティUPさせます。

主にロボット側のUI、会話の部分、あと入力デバイスを増やします。

アプリの手伝い

インターンのときに知り合った人とアプリを作ることになった。

www.startup-gate.f-ventures.vc

とりあえずRailsつかって、appleapiを使うことになってる。

近々記事を書くかもしれない。

上のリンクは参加するらしいもの。

androidアプリを作りたい

最近コンテストでkotlinを使いましたが、あれから触ってない。

また、使いたいので本のsampleコードを写しつつ何かつくりたい。

まぁ何作るのかはおおよそ決まっていますが、年内に作れなさそう。

スマートミラーを作りたい

www.maker-is-you.xyz

これずっと思っている。

最近落ち着いてきたので作りたい。

ハードのことも知りたいので、作る。

問題は金です。

ざっとこんな感じです。

今月は少し余裕が出てると信じてます。

した2つの項目は同時にやりそうです。

就活もあるのでほどほどにやっていきます。

今日はこんな感じでどうですか?

明日は何かweb関係の記事を書きたい。

韓国語のテスト勉強します。

안녕!!

JPHACKS2017 @福岡参加記

こんにちはかわです。

アドベントカレンダー二日目です。

まとめていきたいと思います。

JPHACKSとは

2017.jphacks.com

一言で言うと学生限定のハッカソンです。

1チーム何人でもよくてテーマも自由な感じでした。f:id:nakanaka1826:20171202193011j:plain

参加したきっかけ

自分とドローン好きなBがMashup Awardの出場を考えている際、

福岡でイベントがないかを探していたところこのコンテストに出会ったので参加しました。

自分たちはMashup Awardに出るついでみたいな感じで出ました。

コンテストの前

もともとはMashup Awardに出す作品を改良して行く予定でした。

参加する一週間前、審査基準について、

「事前に作った部分は評価はせず、二日間で作ったもので評価する。」

みたいな話がでてまずいということになり、

作品アイデアを考えることになりました。

結果的には、強制学習装置という作品を作ることにしました。

内容は寝そうになったら電気を流して起こすというものです。(笑)

作業内訳は、

自分・・・androidアプリ

B ・・・ハードウェア

という感じです。

自分自身androidアプリを作る経験がなかったので、

学校の図書館に合った本を流し読みしてました。

これです。

androidを勉強するなら新しいことしてみたいということで、kotlinにしました。

ちょっと言い訳になりますが、この時期体育祭の応援団の練習とかぶって、

全くコードを書けて無く、細かいところまで読めていません。

そんな感じでコンテストに挑みました。

一日目

ついてから早速作品作りです。

やっぱり知識がないときつい。

andoridの開発の仕方がよくわからなかったので、

ひたすらいろんなページを見ながらプログラムを書いていました。

自分の進捗が出てない中ハードウェアの彼はほぼ完成させていたので

相当焦ってました。

一日目の進捗としては、ハードウェアと通信が成功するところだけです。

まずい、終わらん

家に帰ってからはSkypeをつなげながらプログラムを書いていました。

ここから少しづつやり方が分かっていき、タイマーの選択、タイマー機能、

とか主要な機能をなんとか完成させていきました。

後、アイコン画像も作りました。

f:id:nakanaka1826:20171202195948j:plain

5分で作った雑なやつです。(笑)

二日目

少し寝ました。

会場ではハードウェアとの通信関係を完成させていきました。

あとプレゼンづくりの手伝い、提出資料作成ですね。

結果できた作品はこんな感じです。

https://hacklog.jp/works/51640hacklog.jp

ついでだったんでMashup Awardにも出しました(笑)

詳しくは上のリンクを触ってみてもらえたらわかると思います。

完全なネタです(笑)

参加した感想

  • 新しいことへの挑戦はやっぱり楽しいが大変
  • 周りの人達のレベルをみると自分はまだまだだと思う
  • ぶっつけ本番でやる際は新しいことをするとクオリティが上がらない
  • 素材をいくつか作っていったほうが楽だと思う
  • 色んな人と交流ができて勉強になる

もっともっと勉強します。

関わってくださった方々ありがとうございました。

頑張ります!!

f:id:nakanaka1826:20171202201328j:plain