読者です 読者をやめる 読者になる 読者になる

とりまLINE BOT

LINE BOTの機能や実装についてのいろいろ

LINE BOT AwardsでのLINE_DEVさんの活躍を勝手に振り返る

LINE BOT Awards、終了しました。

終了ってのは、なんとか作ってむりやりエントリーしたし、締め切りも過ぎたし、ファイナリストにもLTにも招待されなかったし、発表会は来週開催だけど、まぁ祭りは終わったぜとそういう意味合いです。

#友だちになってくれたり、助けてくれた皆様ありがとうございました。エントリーした皆様もおつかれさまでした。中の人たちはまだまだ気が抜けないでしょうが頑張ってください、、あと少しです・・このAwardsでずいぶんLINE BOTの認知度は上がったんじゃないかと思います。

 

今回どうもTwitterがないと情報に乗り遅れる(汗) ということで、これまで一切興味がなかったTwitterを見るようになりました(egobirdが使いやすかったおかげもある)。

LINE_DEVさんが各種通知を流したり、エントリーした人のTwitterをRTしたり、ものすごい活躍をされていたので、その様子をまとめて勝手に事情を邪推してみました。

 

 

まとめた範囲

2016年9月29日(LINE DEVELOPER DAY 2016。LINE BOT Awardsが宣言された日)から2017年3月10日(今日です)までです。

きっと3月18日(ファイナルプレゼンテーションの日)にも盛り上がることでしょう!

 

ざっくりTweet数

まずはざっとLINE_DEVさんの日ごとのTweet数です。

f:id:yb300k:20170311234538p:plain

9月29日 LINE DEVELOPER DAY2016のTweet数は41件、ここ約半年のMAXを記録しています。

途中の大きなスパイク(23件)は11月14日のLINE BOT Awards大説明会です。

2月末も締め切りだから伸びたんだなと思ったでしょ。違います。3月1日(20件)と3月2日(23件)が最新のスパイクです。

 

BOT作ったよのRT数

エントリーした人の中には、LINE_DEVさんにリツイート(以下RT)してもらって狂喜した人もいると思います。何件くらいRTされていたかと言うと・・・

f:id:yb300k:20170311235007p:plain

赤い棒がRT。私のざっとカウントでこの期間中62件です。LINE_DEVさん・・やるな。。私もご他聞に漏れず、RTしてもらったクチです。ありがとうございました。

 

こっからは想像

先ほどのグラフにエントリーした人たちの動きを書き込んでみました。

f:id:yb300k:20170311235126p:plain

 

9月29日の発表を受けて、大説明会やエントリーフォーム公開の前に速攻「作ったよ!!」って言っちゃってる(そしてそれがRTされている)すごい人たちが居ます。アーリーアダプター、というか、 2016年4月の「LINE BOT API Trial Account」の頃からの猛者ですね・・。(そういった皆さんのWeb記事のおかげですごく助かりました)

 

エントリーフォームのオープンは12月9日でした。驚いたことに12月20日には、エントリー数が100を超えたとLINE_DEVさんがつぶやいています。すでに作りこんでいて自信もってエントリーしたのか、ハッカソンや勉強会に参加した勢いでとりあえずエントリーしたのか?

エントリーしてみて思いましたが、ステータス”開発中”でエントリーしておいて、あとからいくらでも編集できるってのはすごいシステムですね。”開発完了”に編集保存するまで審査開始しませんって、、、審査側殺しだと思いました。だからこそ、「デジタルに友だち数で評価」って審査基準はどうしても外せないものだったんだろうと思います。

このころにはLINE_DEVさんは「作ったよ」のRTはされていないです(#BOTAwardsタグで流している人もいるとは思います・・ちらっと見たけどアイデアソン、ハッカソンにまつわるものが多すぎて埋もれている印象)。

LINE_DEVさんが猛然とRTを始めたのは1月18日のことです。その約2週間後、1月30日には応募締め切りが2月22日から28日に延長されました。

 

えー、何かが起こったんでしょうか、中で(汗

 

その後はコンスタントにRTが続き、3月1日、2日のRT祭りを迎えるわけです。みんな、宿題は早くやろうぜw!!いや、それともつぶやくものらしいぞという指導が突然行き届いたのでしょうか。LINE_DEVさんもびっくりしただろうな。

もちろん自分は2月28日深夜まで必死でバグとっていた最終日タイプの人間です。やれやれ。

 

邪推1:12月下旬には100件超のエントリーがあったはずなのに、RTは62件。これはTwitterで完成宣言をしない人が多かったのか、それとも、ダミーエントリー、あるいは挫折者が多かったのか。。。このあたりも気になってますが真相は藪の中です。3月18日に最終エントリー数が発表されれば少しはわかりそうです。

邪推2:エントリーフォームにあった、BOTリストへの掲載OK/NG 的な選択肢はなんだったのだろうか、、というミステリー。全員が「公開OK」の割にいつまでたっても”開発完了”にならないことで、業を煮やした & リスト掲載しても労力のわりにLINE BOT認知向上への効果が期待できない(=要は読まない or 友だち増にもならない)と判断したのでしょうか。

 

さいごに

大変でしたねのねぎらいと感謝の意味で調べてますが、LINE_DEVさんの許可はとってないです。全部Twitter見ての想像です。事実に反する可能性があります!

ともあれ、読んでいただきありがとうございました。

5秒で!匿名人気投票

いやー、もうすぐLINE BOT Awardsも締め切りですね。

ではこのギリギリのタイミングで行ってみましょう。

5秒で!匿名人気投票 です。

友だち追加

 

@imu4793g

今日のMVPは?この中で誰のアカウント名が一番いけてる?この中でプロジェクトに一番貢献したのは?ファーストキスが一番早そうなのは?とか、何人か集まった時に投票をやると案外もりあがります。

 

ああ、俺に2票も入ってるなんて。。。あの厳しい先輩が俺を評価してくれてるんじゃ?(TT  とか。。(実際は隣の同期だったりするんですが)

みんなが盛り上がる質問考えるのうまいなコイツ!!とか新たな発見もできるんです。

 

というわけで匿名、短時間、アトクサレなしにこだわった投票機能です。投票対象も、参加メンバのみ。参加していない部長が全員一致の1位!なんてことはできませんのであしからず。

投票するにはBOTとだけお友だちになればOKです。あの人に自分のLINEアカウント教えて友だちになるのちょっとまだ早いわ・・みたいな時にもばっちりです。

 

では使い方。動画もあるよ。

www.youtube.com

BOTと友だちになると、「みんなでせーのでタイミングを合わせて参加ボタンを押してね」と言われますので、せーので緑色の 参加! ボタンを押してください。左のほうね。

f:id:yb300k:20170226040923p:plain

BOTの動作仕様としては3秒間の幅の中でボタンを押した人は同じグループにまとめるという動きです。もしうまくリアル友だちとグループになれなかった場合は、いったん退出した後、その箱に混ぜて!(遅れて参加)ボタンを使ってください。

 

自分の名前が投票板に表示されたことを確認してくださいね。以下の例は独りぼっちで寂しい感じです。。

f:id:yb300k:20170226041739p:plain

※10名まで、投票板に表示される仕様です。それ以上は投票にのみ参加できますが、投票板に名前はのらないという動きです。

 

投票板に名前がでている人たち(正確には10名以上の場合は画面にでてないがグループに居る人も含む)には、メッセージを送ることができます。スタンプはだめです。上の例では「ねむい」って言ったのが全員に通知されます。

ホントはここで「この世で一番美しいのはだーれ?」といったメッセージを送ると、なんの投票なのかわかりやすいですね。

 

緑色の 投票開始≫ ボタンを押すと5秒間のタイマーがスタートしますので、その間に誰かの名前をタップしてください!

で、そのあとは結果発表。3位から順に発表されます。

 

というわけでぜひ試してみてください。

まずは友だちになってね!よろしくお願いします!

 

友だち追加

 

LINE BOTの解説動画作成で使ったツール紹介

LINE BOTとは関係ありつつもちょっと離れますが、メモに。

環境はWindows10で、LINE BOTの使い方の手順書動画を作ったときに使ったツールの記録です。

ああ、LINE BOT自体も案外面白いんで(自分で言うな)ぜひ友だちになってくださいね↓

友だち追加

 

作った動画はこれです。

youtu.be

 

 

スマホの画面スクリーンショットをばっしばし撮影したのはよいのですが、当然これ縦長。YouTubeなどの動画は基本横長、こんな風に↓余白を入れることで横長に合わせようと思ったわけです。

f:id:yb300k:20170130233524p:plain

 

うかつにリサイズすると縦横比がおかしな具合に拡大されてしまいます。大好きなペイント使うのもめんどくさい。。。

 

というわけで使ったツール紹介です。もちろんフリー。

まずはJTrim。

forest.watch.impress.co.jp

「余白を追加」という機能があります。画面スナップショットのようにもとの幅が決まっているものであれば「左に320pixel、右に320pixel 黒い背景で余白を追加」というように指定すれば余白を足してくれます。複数ファイルに対して一括でやってくれる機能もあります。

ファイルごとに幅が違ったりすると都度計算で 右を315、左を314 (--;; のように指定しないといけないのでちょっと面倒。(下手に手作業でトリミングしてるとそういう目にあいます)

 

で、下手にトリミング・・・という話からみでこちらも紹介。Ralpha。

forest.watch.impress.co.jp

スナップショットの画面最上部のキャリアとか出てるあたりを手作業で消してしまった、、画像のサイズがちょっとずつ微妙に違う!!!どうしよう!!(経験者談)というときに、複数ファイルをRalphaにドラッグアンドドロップすると画像サイズが一覧表示されます。それだけでもうれしい。

さらに、画像の縦横サイズ指定、はたまた縦サイズだけ指定・・など、様々な指定方法でリサイズをかけることができます。

#余白の追加もできそうに見えたのですが、うまくいかないなーと模索している時にJTrimを発見したのでそちらを使いました。

 

そうやってサイズのそろった画像を作って(テロップは手元にあったPaintShopを使って書き込みました)スライドショー動画にするのに使ったのは・・・

 

www.gigafree.net

定番のムービーメーカー。無料ですし、YouTubeのスライドショー作成だと好きな音楽を簡単につけられないという難点があったため(あとから置き換えればいけるという噂も見ましたが未確認)使うことにしました。

 

ただ悩んだのはすさまじい勢いでフリーズが発生し、やる気をそがれまくること。保存もできないし、なんなんだと。

それで以下の記事を参考に「関係の設定」でCPUの数を減らしました。

misukou.blog84.fc2.com

結果、本当にフリーズしなくなりました!!!親切な人たちありがとう。

 

そしてめでたくYouTubeで公開に至る。というわけです。

参考になれば幸いです。

 

 

プチ海戦ゲーム 対戦☆Battleship 作ってみた

f:id:yb300k:20170121233036p:plain

プランニングポーカーBOTを人に紹介したところ、自分が見積するより前に人の回答見えないほうが面白いのでは・・・という声をいただきました。

なるほど、グループにBOTを追加するのではなく、会話はBOTと私だけ。他人はBOT経由でないと話さない(=情報つつぬけにならない)というBOTハブ型を考えたのですが、これって対戦ゲームに使えそう!と思い付き。

 

で、作ってみました。LINEの友だち追加からぜひ友だちになってください!

http://qr-official.line.me/L/2Ulj1Lk_1w.png

友だち追加   @pvo7474n

 

#ひとりでまずやってみるかと思った場合は、対BOT(ゲームキー1000)、あるいは、自分対自分で試してみることもできます・・

紹介動画はこちら!

youtu.be

 

ゲームの始め方

f:id:yb300k:20170128225840j:plain

    1. LINEで上記BOT 「対戦☆Battleship」 を友達に追加してください。
    2. (自分のゲームキーが表示されます。)
    3. 一緒にゲームしたい人にも、上記BOTの友達になってもらい、ゲームキーを教えてもらってください(口頭でもLINEでもメールでも)。
    4. ボードメニュー(リッチメニュー)から、対戦申込/やめる を選びます。
    5. ゲームキーを聞かれるので、一緒にゲームしたい人のゲームキーを入力。

 

ゲームキーに自分のキーを入力すると、自分対自分でゲームをすることもできます。でも、相手の持ち駒に命中することがないのでゲームは終わりません!

なぜか?それは以下のルールで。。

 

ゲームのルール

  • KingとQueenが自分の持ち駒です。
  • 持ち駒が相手の攻撃によって全滅したら負けです。
  • ゲームの最初は、持ち駒をマップ上の1~16 の場所に自由に配置できます。ただしKingとQueenを同じ場所には配置できません。
  • Kingは2回攻撃を受けるとアウトです。Queenは1回攻撃を受けるとアウトです。
  • 自分の持ち駒の場所は、自分にしかわかりません。対戦相手がどこに持ち駒を置いたかを想像しながら、攻撃を行います。
  • f:id:yb300k:20170128224824p:plain

  • 自分のターンでは、Kingの攻撃または移動、Queenの攻撃または移動の合計2回行動可能です。逆に言うと、行動しないで相手ターンに移ることはできません。
  • ルール説明動画はこれ。
  • www.youtube.com

 

攻撃について

  • 攻撃可能な場所は、自分の持ち駒の周囲8方向です。斜め方向にも攻撃できます。自分の居る場所には攻撃できません。また、自分の持ち駒が置いてある場所にも攻撃できません。以下はKingが攻撃可能な場所の例です。9(Q)の位置はQueenが居なければ攻撃可能です。

f:id:yb300k:20170109014534p:plain

  • 攻撃すると、対戦相手の持ち駒に当たらなかった場合でもどこに攻撃したか、相手に攻撃した場所が通知されます。4に攻撃を受けたら、相手の持ち駒は3,7,8のどこかに居るはずです!
  • 攻撃した場所が相手の持ち駒の隣(周囲8方向)だった場合「かすりました」と表示されます。相手の持ち駒の場所だった場合「命中しました」と表示されます。
  • 偶然自分の持ち駒と相手の持ち駒が同じ場所に居ることもありえます。その場合自分の居る場所には攻撃できないので、命中することはありえません。でも逆に必ず「かすりました」になります。

移動について

  • 移動可能な場所は、自分の持ち駒の縦横方向です。将棋の飛車のように、縦横方向であれば隣でない(例えば2つ離れた)場所にも移動可能です。以下はKingが移動可能な場所の例です。

f:id:yb300k:20170109014638j:plain

  • 移動すると「Kingが下方向に2歩動きました」のように、対戦相手に移動した方向と移動した距離が通知されます。相手の持ち駒の場所をこれで想像しましょう。

  • ただし、Queenおよび、一度攻撃を受けて弱気になったKingは上下左右のどこに移動したか、移動方向しか通知されません。

  • ゲームプレイ画面サンプルはこれね。5倍速ですがイメージつかむのにどーぞ。
  •  

  • www.youtube.com 

 

その他の機能

  • 対戦中、止めたいときは「対戦申込/やめる」メニューを選ぶと終わらせることができます。
  • 対戦中に @こんにちわ のように@の後ろにメッセージを書くと相手にメッセージが届きます。スタンプには対応していません。顔文字は大丈夫です(たぶん)。
  • 攻撃先や移動先の入力には実は数字入力も使えます。マップをタップする方がわかりやすいですけどね。。※ボードメニューから マップ を選ぶと自軍マップが表示されます
  • LINEで直接友達になっていない人でも、ゲームキーさえどうにかして教えてもらって対戦してもらえれば、BOT経由で間接的に会話できますよっ。対戦開始方法はこちらの動画参照。

    youtu.be

  • ボードメニューから ゲームキー表示 を選ぶと、自分のゲームキーと過去に対戦した人のゲームキーが表示されます。なお、LINEで対戦☆Battleshipをブロックして、その後ブロック解除すると自分のゲームキーは変わってしまうので注意してください。
  • ゲームキー 1000 に対戦申込すると、BOTさんが相手してくれます(残念ながらそれほど賢くはないです…鳥だし。)

 

BOT開発サイドからひとことふたこと

  1. Herokuで動いています。Herokuなので、時々スリープになっていて応答が遅いこともあるかもしれませんがご容赦を。
  2. Python(2系)を使ったので、表示メッセージ合成時のUnicodeエンコーディングで大ハマリして、いろんな方のサイトにお世話になりました。ありがとうございました。

    PythonのUnicodeEncodeErrorを知る - HDEラボ

    Python2のstr/unicodeとencode/decode - Qiita

    PythonのUnicodeDecodeErrorと戦った話 - ぴよぴよ.py

  3. LINE BOT Awardsで、通常はdeveloperプランでしかできないPush送信を他のプランでも認めるとのこと。developerプランは友達50人の制限があり、Awardsには不利なのでこれは嬉しいお知らせ。ただ、エントリー後、Push可能になるまで最大5営業日かかるということで、①フリープランでBOT作成しエントリー②その後数日はPush APIが利用可能になるのをじっと待ち③利用可能になったら宣伝!という流れになります。エントリー時「開発完了」とすると審査が始まってしまうのでご注意を。ちなみにPush可能になってもメールなどが来るわけではないので、エントリーした後、ちょくちょくLINE Business Centerから確認しましょう。 メール来ます。自分の場合は、メールが来る2日前から、Push APIが使えるようになっているのはLINE Manager画面から確認できていました・・・
  4. リッチメニューはPostBackイベントではなく、TextEvent扱いにしかできません。なのでリッチメニューからユーザーがなにか選択すると、LINEのいつもの投稿のように表示されてしまいます。ちょっと見た目アレですけど仕方ない。
  5. BOTさんはスタンプ対応がちょっと弱いです。

    f:id:yb300k:20170109115109j:plain

    上記4種類のパッケージに含まれているスタンプは送信できるのですが、他のものは送信できません(エラーになる)。ここに詳細な対応スタンプ一覧がありますがこんだけかあ・・・。有料スタンプはBOTさんは買い物してないからダメって言われるのもわかりますが、無料のものだったら送れるようにしてほしいなぁ(プログラム上どう識別するかは微妙ですが・・・)。なお、対戦☆Battleship はスタンプ対応はしていません・・対応しようかと思ったけれど送れるスタンプが少ないのでやめました。
  6. 対戦相手を勝手にマッチングするとか、機械学習で賢くなるコンピューターと対戦できるなど、機能追加アイデアはいくつかあるけど、予定は未定・・・他の機能でも、希望あればお知らせください。考えます。

 

さいごに

対戦したい方募集中・・・って言おうかと思いましたが、自分にこの手のゲームのセンスがないことがわかったので止めておきますw

ご感想、希望する追加機能、うまく動かない、わからないなどありましたら、ぜひコメントをお願いします! 

 

LINE BOTでプランニングポーカーを作ってみた

開発 LINE BOT アジャイル スクラム

f:id:yb300k:20161213232053j:plain

 

※プランニングポーカーってなんだ?という方は以下をどうぞ。

kawaguti.hateblo.jp

 

開発タスクが出そろったら「どのくらいの規模?どのくらいかかりそう?」を全員で相談するのですが…そこでつかうプランニングポーカーをLINE BOTで実装してみました。

 

試してもらった方が早そうなので、早速ですが スク&ラム☆ポーカー とお友達になって、LINE グループまたは複数人のトークに混ぜてください! 

友だち追加   

 

LINE BOTでプランニングポーカーをすると、何がいいんでしょう。

 

LINE BOTを使うメリット 

仕組みの導入準備段階

  • プランニングポーカーのカードを入手する手間、費用を削減できる。
  • アプリのインストールは不要。*大抵LINEは入ってますよね

プランニングポーカー中

  • 会議室に集まる必要なし。外出中のメンバもスマホで参加できる。
  • トランプ状のカードを配って回収して・・の手間がかからない。ポーカーやり直しも簡単。
  • 回答時間は10秒。だらだらしない(というか、できない)。
  • 回答は画像をクリックするだけで手軽。
  • 参加者の回答を集計して結果表示するので、意見が合ったか分かれたかすぐわかる。
  • 質問やコメント交換もLINE上ですぐ始められる。

後片付け・その他

  • 物理的なカードと違い、片付け不要。カードの劣化や紛失がない。
  • ポーカー結果をLINE画面で振り返ることができる。
  • (プランニングポーカーを口実にあの人とLINE友達になっちゃえるかも。。。)

 

使い方

グループまたは複数人トークに スク&ラム☆ポーカー が参加していることを確認しましょう。参加させる方法はこんな感じです。

(あなた対BOT・・要はひとりでも使えますが、ちょっと寂しいです)

 

何のタスクについての見積を行うか決めたうえで、「プラポ」という合言葉を入力すると・・・

f:id:yb300k:20161213013450p:plain

カードのかわりに数字が並んだ画像が表示されます。

 

参加者全員、自分の思う見積り数字にタッチすることで意見交換ができます。

f:id:yb300k:20161213015033p:plain

この例だと、私は1を押したのですが、他のメンバーは8と見積もっています。なお、#39というのはポーカーの開催が何回目か示す番号です。

 

10秒後には集計結果が表示されます。

f:id:yb300k:20161213015244p:plain

各自の回答がそろっていないことが一目瞭然。なぜ8と見積もったのか、メンバーに聞いてみましょう。

 

数字じゃないボタンは何に使うかというと・・・ 

f:id:yb300k:20161213235413p:plain PO(プロダクトオーナー)に確認したいことがあるときに使います。

f:id:yb300k:20161213234932p:plain 規模が大きすぎて見積りできないときに使います。

f:id:yb300k:20161213235440p:plain 自分の大好きなソイラテです。休憩してリフレッシュしよう!というときに使います。

   

「もう1回」を押すと、もう一度プランニングポーカーを始めることができます。

紹介動画はこちら!↓

youtu.be

 

BOT開発サイドからひとことふたこと

  1. APIの仕様上、グループに対して回答したアカウントのユーザーIDを取得することはできません。このため、同じ人間が何回も回答することもできてしまいます。APIが機能拡充されると最新の回答だけを表示するなど工夫できるので嬉しい。
  2. imagemapを使って回答を入力できるところがポイントですが、imagemapをタップすると文字入力をした時と同様、発言としてLINE上に吹き出しが表示される仕様です。ほぼ同時に複数人がタップした場合、表示がスクロールされることで予期しない入力となってしまう可能性があります。
  3. 今後の機能追加予定は、ソイラテ飲みながら考えます。

 

さいごに

ご感想、こんな機能がほしい、あるいは、使いにくい、うまく動かない、わからないなどありましたら、ぜひフィードバックをお願いします!