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

中京テレビハッカソン「HACK-CHU!」参加レポート(後編:本選)

中京テレビハッカソン「HACK-CHU!」参加レポートの後編として、3/11,12 に行われたハッカソンの模様をお届けします。

前編はこちらです。 dstsukky.hatenablog.jp

いきなりの浮気

後編のレポートと書いたのですが、3/11 の午前中は私は会場にいませんでした。この日は AWS のユーザーコミュニティイベント JAWS DAYS 2017 にどうしても顔を出したかったため、ハッカソンのサポートは先輩にお任せして東京へ。

f:id:dsstsukky:20170313190508j:plain:w350

2 時間ほど JAWS DAYS を楽しんだ後、「裏切り者!」と言われることにビクビクしながら 14 時過ぎに会場へ。

f:id:dsstsukky:20170313190613j:plain:w450

本選:ハッカソン 1 日目

会場に着いて状況を聞いたところ DataSpider を使っているチームは 2 チームとのこと。あれれ?アイデアソンの時点から随分減ってしまったな、朝から来なかった罰か・・・

そうはいっても 2 チームでガッツリ使ってくれているので、落ち込んでいる暇はありません。早速サポートに入ります。この時点で使ってくれていたチームはななパパさん率いる「なごやかなごや」と学生の元気溢れる「私立 Pepper 幼稚園」の皆さん。

こちらは「なごやかなごや」の様子。

f:id:dsstsukky:20170313191626j:plain:w450

こちらは「私立 Pepper 幼稚園」をサポート中の先輩脇野さんとサイボウズさん。

f:id:dsstsukky:20170313193657j:plain:w450

両チームともに kintone + DataSpider の組み合わせで使っていただいていて、もうハッカソンにおける鉄板構成になってきた気もします。

余談

毎回ハッカソンで DataSpider を使っていただいて思うのですが、初めて使っていただく方はアイコンの配置の仕方が個性的で面白いですね。

f:id:dsstsukky:20170313193100p:plain:w450

この日は 20 時に会場をでなければいけないということで、キリの良いところで撤収します。

本選:ハッカソン 2 日目(最終日)

泣いても笑っても今日が最終日。夜には賞金 20 万円を手にするチームが決まっているはずです。今日は徹夜明けの人や殆ど眠っていない方もいるでしょうということで、恒例の体操から始まります。

f:id:dsstsukky:20170313195526p:plain:w450

前日まで 2 チームで DataSpider を使っていただいていたのが、この日の昼頃になって事態は急変。急遽「UCLoveLove」と「8/31 の救世主」の 2 チームでも「DataSpider を使いたい!」というより「DataSpider ならできるかも?」ということで声をかけていただき、合計 4 チームのサポートとなります。

この日はほとんどこっちの席に座っていなかった気がします。ある意味貴重なショット。

f:id:dsstsukky:20170313200913j:plain:w450

更に、前日から使っていただいた「私立 Pepper 幼稚園」でも問題が勃発。前日 DataSpider を使ってバリバリ開発していただいた方が体調不良でダウンしてしまったということで、脇野さんがまるでチームメンバーかのようにガッツリサポート。そして終了 1 時間前ぐらいにまさかの追加要件があり、最後にはペアプロ状態。(DataSpider を使っているので、正しくはペア・ノンプログラミング)

f:id:dsstsukky:20170313201041j:plain:w450

時間いっぱいまで 2 人で最後の追い込みをかけて、ハッキングタイム終了。

成果発表

皆さんの 3 日の成果が見られるこの時間が何よりも楽しみです。実際の進行とは少し異なりますが、受賞作品も交えて記載します。

予選と同じくトップバッターを引いたチーム「私立 Pepper 幼稚園」の作品『Pepper 通信簿』

f:id:dsstsukky:20170313201454j:plain:w450

幼稚園児の体調を毎日記録し、親御さんに LINE で通知するサービス。DataSpider をガッツリ活用していただき、ロゴもでっかく真ん中に置いていただきました!

f:id:dsstsukky:20170313201626j:plain:w450

このチームは DataSpider (というよりアプレッソ)をたくさん使っていただき、私達もとても楽しませていただいた感謝の気持ちを込めて DataSpider 賞を贈らせていただきました。

f:id:dsstsukky:20170313205727j:plain:w450

続いて、アイデアソンの段階で勝手に私がロゴステッカーを貼り付けた「8 月 31 日(なつのおわり)の救世主」の作品『写 2 記』

f:id:dsstsukky:20170313201847j:plain:w450

夏休みの天敵である日記の作成支援サービスです。審査員の方より「電話じゃなくてアプリで良くない?」というコメントがありましたが、おじいちゃんおばあちゃんは孫の声が聞きたいと思うので、Twillio を使って電話したのが凄く良かったと思います。

f:id:dsstsukky:20170313202016j:plain:w450

前日に Azure Blob ストレージにファイルを上げるのに苦労されていたチーム「ブレンドスパイス」の作品『ママに褒めてもらうのだ!!』。DataSpider を早くに提案できれていればもっとラクができて他に時間を割いて貰えたのになぁ、と個人的には少し悔いが残りました。

f:id:dsstsukky:20170313202603j:plain:w450

4 チーム目はななパパさん率いるチーム「なごやかなごや」の作品『パパのバイブル』

f:id:dsstsukky:20170313203054j:plain:w450

私がななパパさんを凄くイイなと思うのは、いつもお子さん(ななちゃん)に同じことをやらせるのではなく、毎回新しいことにチャレンジさせているところです。また、チームとしても DataSpider や kintone のような非プログラマー向けのツールを使うことで、誰もが活躍できるチームを作っているところが素晴らしいと思います。今回もありがとうございました!

f:id:dsstsukky:20170313203140j:plain:w450

後半戦に入ってきました。5 チーム目「UCLoveLove」の作品『nail ARtist』です。アイデアソンが終わった時点では 3 人だけのチームで画像認識も苦労しそうだと思っていたのが、しっかりと動く作品を仕上げてきたのが素晴らしいです。

f:id:dsstsukky:20170313203457j:plain:w450

途中から声をかけていただいて DataSpider をファイルストレージにしてしまう、というちょっと変わった使い方をしました。

f:id:dsstsukky:20170313203632j:plain:w450

自分の手にネイルの画像を投影するというサービスなのに何故気象データ API の YuMake を使ってるの?と思ったら、週間天気予報を爪で表現してくるというとんでもない発想。「曇り、曇り、曇り、晴れ、晴れ」は個人的にはかなりツボでした。

f:id:dsstsukky:20170313203854j:plain:w450

しっかりと YuMake 賞をゲットされましたね。おめでとうございます!

f:id:dsstsukky:20170313205822j:plain:w450

ファンの皆様、お待たせしました。『クラブロ』の登場です。(チーム「名古屋クラブロ協会」)

もはや説明不要(画像だけでお楽しみください)

f:id:dsstsukky:20170313204308j:plain:w450

f:id:dsstsukky:20170313204649j:plain:w450

f:id:dsstsukky:20170313204632j:plain:w450

f:id:dsstsukky:20170313204412j:plain:w450

f:id:dsstsukky:20170313204406j:plain:w450

では、ハッカソンの成果発表に戻ります。先週のアイデアを見て、作品の完成を一番見たいと思っていたのがこのチーム「OMORI KOMORI」の作品『パソコントローラー』

f:id:dsstsukky:20170313204935j:plain:w450

2回めとなると、「ヤフーでググり」のウケはイマイチでした。

f:id:dsstsukky:20170313205240j:plain:w450

しかし、秘密兵器(リアルおかん)の投入や

f:id:dsstsukky:20170313205346j:plain:w450

「API 提供企業をガン無視」するという目的のためには手段を選ばない強い信念と素晴らしいプレゼンテーション

f:id:dsstsukky:20170313205426j:plain:w450

そして完成度の高い作品で

f:id:dsstsukky:20170313210841j:plain:w450

見事、最優秀賞を射止めました。本当におめでとうございます!

f:id:dsstsukky:20170313210014j:plain:w450

最後のチームです。ハッカソンは「ハック」と「マラソン」を掛け合わせた造語だからということで、実際に当日マラソンを走られた方がいらっしゃるチーム「家族の想い伝え隊」の作品『家族の絵本』です。

f:id:dsstsukky:20170313210337j:plain:w450

「ハッカソン」と「マラソン」を合わせてしまったから実際には「ハッカソンソン」だと思いますが、過酷なマラソンの後に過酷なハッカソンに戻ってくるなんてすごいですね。

審査員の方も仰っていましたが、実際に Twitter でアンケートをとられた点も素晴らしいですし、

f:id:dsstsukky:20170313211031j:plain:w450

誰もが共感できる心温まる作品でした。(絵もかわいいですね)

f:id:dsstsukky:20170313211130j:plain:w450

こちらの作品はマラソンのためにエンジニア不在で苦労されたものの、将来が楽しみということで高い評価を得て優秀賞を受賞されました。

f:id:dsstsukky:20170313211254j:plain:w450

東海地区での大規模ハッカソンが初めてというのが信じられないくらい、ユニークで完成度の高い作品ばかりでした。

ネタにしておいてなんなんですが、一番欲しいのはクラブロです。

最後に

毎回ハッカソンのサポートに行くと感じることですが、サポートすることを通じて誰よりも自分が楽しみ、そして自分自身が成長させて貰っていると思います。

こんな素敵な機会をくださった、参加者の皆さん、運営の皆さん、中京テレビの皆さん、本当にありがとうございました。

f:id:dsstsukky:20170313211613j:plain:w450

中京テレビハッカソン「HACK-CHU!」参加レポート(前編:予選)

東海地区最大規模のハッカソンとなる中京テレビハッカソン「HACK-CHU!(はっくちゅ)」に API 提供企業として参加してきました。今回も主観たっぷりにレポートさせていただきます。

概要

本ハッカソンは 100 名以上の方が参加する大規模なイベントとなり 3/ 4 に予選(アイデアソン)を行い、勝ち抜いた 8 チームで次週 3/11,12 の本選(ハッカソン)に進むという流れで行われました。当社アプレッソは API 提供企業という立場で DataSpider をハッカソンで使って開発を効率よく進めていただくべく、環境の提供、技術サポートを行います。

予選(アイデアソン)

今回の会場である中京テレビさんは最近移転したらしく、新しくカッコイイ建物です。

f:id:dsstsukky:20170313173215j:plain:w350

主催者の方のお話によると「名古屋で初めてのイベントでそんなにたくさんの人を集められるのか?」と不安もあったようですが、会場はこのように大盛況。

f:id:dsstsukky:20170313173357j:plain:w450

オープニング~インプットタイム

そして始まりました、中京テレビハッカソン「HACK-CHU!」。ハッカソンの司会と言えばこの人 Mashup Awards でお馴染みの伴野さん。伴野さんの仕切りで開かれるイベントは私達サポート企業も安心して臨めます。(お隣の美人は中京テレビの磯貝アナウンサーです)

f:id:dsstsukky:20170313173415j:plain:w450

皆さんの緊張をほぐすためのアイスブレイクのあと、早速 API 提供企業からのインプットタイムが始まります。私自身も面白い API を知ることができるのでこのインプットタイムは毎回楽しみです。今回の提供企業 11 社の中で一番試してみたいなと思ったのがマイクロソフトさんの Cognitive Services 。写真を撮って年齢を推測することや感情の解析ができるようです。これは触ってみたい!!

f:id:dsstsukky:20170313173911j:plain:w450

アイデア発散~チームビルディング

アイデアソンの手順は(細かいことは忘れましたが)以下の通りです。

まずはキーワードをたくさん出して付箋に貼ります。

f:id:dsstsukky:20170313175343j:plain:w450

出てきたキーワードを掛け合わせて

f:id:dsstsukky:20170313175444j:plain:w450

お絵かきしていきます。

f:id:dsstsukky:20170313175559j:plain:w450

その後、全員で他の人のアイデアを見て回り、良いアイデアには★マークをつけたり、もっと良くなるためのアドバイスとして付箋を貼っていきます。

f:id:dsstsukky:20170313175741j:plain:w450

最初は私も普通に★を書いて回っていただけなのですが、自分がステッカーを持っていることに気づき、DataSpider を使ったら良いと思うアイデアにステッカーを貼ってみました。(結果的にこのチームは本選に出場して DataSpider を使ってくれました)

f:id:dsstsukky:20170313180038j:plain:w450

その後、良いアイデアを持っている人と良い技術を持っている人とがお互いを求めてチームビルディングが行われます。(通称ナンパタイム)

f:id:dsstsukky:20170313180250j:plain:w450

アイデアソン~発表

チームができたらお昼を食べながら、アイデアをより練り上げるためのアイデアソンが始まります。

f:id:dsstsukky:20170313180631j:plain:w450

テレビ局主催のイベントですので、当然テレビカメラでの撮影もあります。

f:id:dsstsukky:20170313180716j:plain:w450

2 時間ほどのアイデアソンを経て、発表の時間です。今回は 20 チームもあるので発表時間だけで 2 時間ぐらいあります。全チームのご紹介は難しいので、印象に残ったチームをご紹介。

トップバッターで緊張気味ながらも掛け声を 2 回もやり、無事予選を突破したチーム「私立 Pepper 幼稚園」作品名『Pepper 通信簿』

f:id:dsstsukky:20170313181106j:plain:w450

蜘蛛の絵がとっても上手なチーム「8月31日(なつのおわり)の救世主」作品名『写 2 記』

f:id:dsstsukky:20170313181314j:plain:w450

とっても緊張してた「あんこうさんチーム」作品名『Pepper’s Cooking!! 』。Twitter でもみんな応援してました。

f:id:dsstsukky:20170313181815j:plain:w450

声で目立ち、「ヤフーでググり!」でみんなのハートを鷲掴みにしたチーム「OMORI KOMORI」作品名『パソコントローラー』

f:id:dsstsukky:20170313182143j:plain:w450

色々とズルいチーム「タクミくん更正委員会」作品名『みがわりタクミくん』

f:id:dsstsukky:20170313182348j:plain:w450

勢いだけで全て持っていった「名古屋クラブロ協会」の作品『クラブロ』

f:id:dsstsukky:20170313182822j:plain:w450

写真を見ながら思い返しても濃い発表ばっかりですね。司会の伴野さんからも「東海圏は個性が強い!」と言うコメントが飛び出したアイデアソン。次週の本選(ハッカソン)に進めるのは 20 チーム中以下の 8 チームです。

f:id:dsstsukky:20170313183643j:plain:w450

私自身、二週に渡って開催されるハッカソンは初の参加となるため、本選までの一週間が本当に楽しみでした。そして、8 チーム中 7 チームが DataSpider を使用予定と書いてくださっていたため、翌日社内でサポーターの緊急募集をしました。

それでは、成果発表が楽しみな後半に続きます。

dstsukky.hatenablog.jp

大嫌いだったゴルフにハマる

この記事は「嫌いだったものに一生懸命取り組んでいる自分エラい!」ということを言いたいのではなく、「取り組む前に全否定する」という自分の性格に問題があることを公にして、再発を防止することを目的に書いています。

過去には

  • iPhone (Apple 製品)

  • 車(自家用車)

  • ゴルフ

が近年の「三大全否定ワード」でいずれも大好きになったものです。

今日はその中で直近の話題であるゴルフについて取り上げたいと思います。 Apple 製品と車に関する現状は写真だけ。

ゴルフ拒否の10年間

最初に勧誘を受けたのは 2006年、新卒で入った会社を退職して2社目(前職)に入った直後、ちょうど社内ではゴルフブームで多くの先輩たちがゴルフにハマっていました。私は高校野球やっていたということもあり(それが採用理由だったとか・・・)、「お前はやれば絶対めちゃめちゃ飛ばせて楽しいからやれ」と言われましたが、拒否し続けていました。

2009年に仲の良いメンバーで軽井沢に旅行に行った際も、何名かが初めてゴルフをやっていたにも関わらず自分だけ拒否していました。そして、2014年にアプレッソに入社した際にも当時の社長がゴルフ大好きで声をかけていただいたにも関わらず頑なに拒み、ひたすら時が経つのを待っていました。

(2009年軽井沢 許可がないので先輩たちは一応黒塗り)

何故そんなにゴルフをやりたくなかったかというと

  • 仕事なのかスポーツなのかよくわからない

  • やるからにはちゃんと練習したい

というのがありました。

仕事なのかスポーツなのかよくわからない問題

だいたいゴルフに誘ってくるのは上司や先輩です。「楽しいからゴルフやろう!」というのは良いのですが、だいたい二言目には「お客さんと仲良くなれるからやったほうが良い」という言葉が付いてくるのです。

「ゴルフはスポーツじゃないのかっ!?」と思うわけですよ、それって仕事じゃないのかよと。

仕事なら「仕事としてやれ」って言われたほうが分かりやすいけれど、「楽しいから」と言って勧誘しておきながら、その先に「仕事の人脈増える」とかそういう話になるわけですよ。マジムカつきます。

やるからにはちゃんと練習したい問題

私はメチャクチャ負けず嫌いで、ゴルフをもしやるのであればちゃんと練習して誰よりも上手になりたいと思っていました。そのためには他の余暇の時間を削って練習する必要がありますし、道具をちゃんと揃えるための金銭的なコストもかかります。

だいたい誘ってくる人は「ちょこっと練習すればラウンドできるよ」とか言ってくるんですが、そうじゃないんです。ちょこっとの練習でやって他人に負けるのは嫌なのです。やるからには負けたくないからちゃんと時間取って練習したいんですよ!

ゴルフを始めたきっかけ

そんな大嫌いだったゴルフを始めたきっけについてです。 2016年の秋頃、仲の良いパートナーさん(3名)と私の上司(+私)とでの飲みの場のことです。ゴルフの話題になり、パートナーさんの1名の方も私と同じくゴルフはやりたくないと言っていて理由として「道具を揃えるのが大変で・・・」と言ったところ私の上司が「私の1セット余ってるから差し上げます」と余計なことを言ってしまう。

当然、この流れでパートナーさんは始めないわけにはいかなくなり、私も巻き込まれ事故に・・・とりあえずその場で「やる」という約束はしなかったものの、皆さんの勢いに負けて「1回だけ一緒に練習に行く」という約束をしてしまいました。

ゴルフの楽しさ

ということで、約束をしてしまったからには練習には行かなければいけない、ということでそれから2ヶ月ほど後に私の上司を除くメンバー4名で江坂のゴルフ練習場に行きます。これをきっかけにゴルフにハマっていくわけですが、何がそんなに楽しいのか?と自分なりに感じていることを書き留めておきます。

思っていたより辛い

始める前のゴルフのイメージは「おじさんのスポーツ」「他の球技と比べてスピード感がない」ので、大して難しくないものだと思っていました。

それがやってみると意外に難しい。よく言われる「止まっているボールに当たらない」ということは感じなかったのですが、普段使わない筋肉を使うので1時間程度打ちっぱなしをやっただけで背筋が辛くなり、結果練習に行った後にぎっくり腰になってしまいました。

しかし、「こんなに大変なことをみんなやっているのか」と思うと負けん気に火が付いてきます。

練習は嘘をつかない

ちょっとやってみて楽しいと感じたので、「やるからには徹底的にやろう!」と思いました。これは自分の性格なのですが、先述の通りなんでもやるからには絶対に負けたくないと思っており、ゴルフも同じです。スポーツをやるからには他人に負けないぐらいになりたいと思い、早速江坂のゴルフセンターのスクールに入会しました。

スクールに通って2ヶ月程度たった今感じるのは、「ゴルフはフォームが命のスポーツなのかな?」ということです(違ったらすみません、あくまで個人的感想です)。フォームは自分ひとりで練習していると悪いところに気づかないので、スクールに通って毎週1時間練習しているだけですが、毎週少しずつ悪かったところが改善されていくのが楽しく感じます。また、上手く打てなかったと感じた時に後ろからコーチに「いまのはxxがちょっとおかしかった」と言われて修正すると真っ直ぐ飛んで行くのがまた面白いです。

スポーツはなんでもそうだと思いますし、今は始めたばかりだからなおさら感じるんでしょうが「練習は嘘をつかない」というのは凄くやりがいがありますね。

ゴルフを名目にいろいろな人と遊べる

「ゴルフをやっていると仕事の役に立つ」とは未だに思わないですし、やる前から否定していた「仕事なのかスポーツなのかよくわからない問題」はあまり改善してはいないのですが、仲の良い仕事仲間の人たちとゴルフを行くのは純粋に楽しいです。

また、今日先程も高校時代の野球部の先輩から「ゴルフに行こう」と誘っていただき、自分の中での「この人とゴルフ行きたい」リストが既に何十人かになっていて、予定を立てるだけで楽しみです。

それから、色々な人に「ゴルフ行きましょう」と話してみると少し前の自分と同じく「上司から『やれっ』て言われてめんどくさいと思っている人」がたくさんいることが判明し、そういう人たちと一緒にこれから始めていくのも楽しみの一つです。

まとめ

ということで、「ゴルフやるぐらいだったら死んだほうがマシ」と言っていた人間がこんなにハマっている現状の報告でした。 是非皆さん、一緒にやりましょう!

Webhook と Thunderbus で超便利!

kintone Webhook 企画 第3弾

本当はこの記事を最初に書いていたのですが、やっているうちに LINE 連携が楽しくなってきたてこの記事は3番目になりました。

同じネタで1日に3つも記事を上げると「お前どんだけ Webhook 好きなんだよ」と突っ込まれそうですが、いくら突っ込まれてもいいぐらい Webhook の搭載が楽しみでした。

一緒に書いた2つの記事はこちらからどうぞ。

 Webhook を使って kintone から LINE にメッセージを送る

 kintone と LINE でおしゃべりする

kintone Webhook + DataSpider

なぜ私がそんなに Webhook を楽しみにしていたかというと、DataSpider を開発・販売している私達にとって kintone の Webhook 搭載は両製品の用途をより広げる良いチャンスになるからです。

Webhook と DataSpider を組み合わせると「kintone に登録されたデータを他システムにリアルタイムに反映する」ことができるようになります。

これだけだと 「Zapier と何が違うんだ?」と思われる方もいらっしゃるかもしれませんが、ブラウザを閉じるのはちょっと待ってください。

Zapier は Web サービスとの連携に強いですが、DataSpider のように社内の基幹系システムとの連携はさほど多くの機能を持っていません。DataSpider は 2,900社を越えるユーザーの大多数が社内の基幹系システムの連携で使われており、実際に中野製薬様のように kintone と AS400 を組み合わせる目的で使われていたりします。簡単な Gmail 送信や Slack への送信などであれば Zapier で良いかもしれませんが、基幹システムとの連携となるとそうはいきません。そこで DataSpider の出番です。

連携の仕組み

DataSpider では「HTTP トリガー」という HTTP リクエストを受け取ったら、それを契機に連携処理を行う機能があります。ただし、これまでは kintone 側から DataSpider に対して HTTP リクエストを送信する方法が JavaScript によるプラグイン開発しか無かったため、少しハードルが高いものでした。しかし、この度 Webhook の搭載によりプラグインの開発が必要なくなったため、グッと敷居が下がったと思います。

f:id:dsstsukky:20170208111409p:plain

※注:「HTTP トリガー」以外でも「スケジュールトリガー」といって決められた時間(例:毎日xx時)や定期的(例:xx分おき)に連携処理を行う機能などがあるため、必ずしもプラグイン開発をしなくても、kintone と他システムの連携は可能です。kintone にレコードが登録されことを契機に他システムに連携が行いたい場合にはプラグイン開発が必要でした。

では早速試してみましょう。 今回はシンプルに受信したデータをオンプレミスデータベース(例:Access)に書き込む処理を作ります。 使うアプリはこんなイメージ。一般的な案件管理アプリケーションです。

f:id:dsstsukky:20170210191536j:plain:w450

書き込む先の DB はこちら。

f:id:dsstsukky:20170210222313j:plain

そして、DataSpider 側で作ったスクリプトはこんなイメージ。とってもシンプルですね。kintone で受信したデータをデータベースのカラムに合わせて加工して INSERT するだけです。

f:id:dsstsukky:20170210222155j:plain:w450

HTTP トリガーの設定を行って DataSpider の設定は完了です。黒く塗りつぶしたところは DataSpider の IP アドレスが書かれています。

f:id:dsstsukky:20170210223634j:plain:w450

あとは kintone 側で Webhook の設定で、上記の HTTP トリガーに書かれていた URL を指定します。

f:id:dsstsukky:20170210224003j:plain:w450

早速レコードを追加してみます。

f:id:dsstsukky:20170210224207j:plain:w450

データベースの中身を確認してみますと・・・

f:id:dsstsukky:20170210222842j:plain

はい。しっかりデータベースの方にも反映されていますね。

このように、Webhook と DataSpider を組み合わせると、kintone に入力されたデータを、オンプレミスにあるシステムにリアルタイムに反映させることが可能となります。

しかもここまで一切私はプログラムを書いていないのです。

更に親和性を高める Thunderbus HTTP エージェント

ただし、これだけでは少し懸念点が残ります。

DataSpider や連携先のシステムがクラウド上にある場合さほど気にすることではありませんが、社内の基幹システムとの連携を行う場合多くのケースにおいて DataSpider は社内ネットワークに置かれており、セキュリティの面から kintone(外部ネットワーク)から DataSpider のサーバに対して HTTP(S) での通信が行なえません(= Webhook が受信できない)。

f:id:dsstsukky:20170208111540p:plain

そこで、こういった課題を解決するために生まれてくるのが Thunderbus HTTP エージェントです。既に Thunderbus (読み:サンダーバス)という製品は 2015年に販売を開始しているのですが、従来持っていたファイルエージェント機能に加えて HTTP エージェントという機能を3月にリリースします。

Thunderbus HTTP エージェントは、送信された HTTP(S) リクエストをフォワードする機能を持っており、(原理的には違うのですが)リバースプロキシのような役割を担うことができます。

Thunderbus Server をグローバル IP を持つ環境(クラウドやDMZ)に設置し、Thunderbus Agent はグローバルIP を持たない環境(社内LAN)に設置します。 この時、Server 宛に送信された特定の HTTP(S) リクエストが社内ネットワークにある Agent宛に転送されます。

f:id:dsstsukky:20170208114058p:plain

これによって、DataSpider をインターネット上に晒すことなく外部からの HTTP(S)リクエストを受け取ることができるようになり、kintone の Webhook によるデータ受信も安心して行えるようになります。

まとめ

このように、Webhook のリリースにより DataSpider を使って kintone のデータと他システムの連携をすることが更に容易になりました。また、Thunderbus と組み合わせることにより、DataSpider をインターネットに晒すこと無く連携が可能となります。これによって kintone と社内のシステムを組み合わせてより幅広い用途で活用いただけるかと思います。

宣伝

この超便利な kintone の Webhook と DataSpider + Thunderbus の組み合わせは「DataSpider Cloud 全国セミナー ~kintone 編~」にてご紹介させていただきます。少しでも興味を持っていただいた方は是非足を運んで体験してみてください。

DataSpider Clous 全国セミナー ~kintone 編~

kintone と LINE でおしゃべりする

kintone Webhook 企画 第2弾

前回 「Webhook を使って kintone から LINE にメッセージを送る」というものを作りました。 これを作っている途中に「あれ? 元々 DataSpider にある kintone に書き込む機能(kintone アダプタ)を使ったら、LINE と kintone で相互に会話できるのでは?」と思いました。

kintone 呼び出しボタンの逆バージョンのイメージで、これができれば kintone を使って仕事中の人と kintone のアカウントは持っていない人(例えば家族など)のコミュニケーションが可能となります。

そして、作りました! できました!

動作イメージ

LINE → kintone の場合

まずは LINE から kintone にメッセージを送信する場合です。 f:id:dsstsukky:20170211112101j:plain:w450

  1. LINEでメッセージを送る人は普通に送ります。

  2. LINE アカウント(LINE@MANAGER で作成)が受け取ったメッセージを Webhook で DataSpider Cloud に送信します。

  3. DataSpider Cloud は Webhook で受け取ったデータを基に kintone の 「ユーザー管理」アプリを検索します。  LINE から送られてくるデータ内にユーザーごと固有の ID があるため、この ID が kintone に登録されたものであるか否かを検索し、登録済みの場合には名前を取得します。また、まだ登録されていない場合には「見知らぬ人YYYYMMDD」というユーザーを作成して ID と紐づ けます。

  4. DataSpider Cloud が kintone の「チャット」アプリに対して書き込みます。この時、送信者の名前は「ユーザー管理」アプリに登録された名前を使います。

LINE → kintone の場合

続いて、kintone から LINE にメッセージする場合です。 f:id:dsstsukky:20170211112136j:plain:w450

  1. kintone でメッセージを送る人は「チャット」アプリを使い、ルックアップで「ユーザー管理」アプリの送信先を参照してレコード登録します。

  2. kintone に登録されたレコードは Webhook で DataSpider Cloud に送られます。

  3. DataSpider Cloud では受け取ったデータを LINE Messagin API を使って、LINE に送ります。

  4. スマホ側にメッセージが届きます。

kintone 側の実装

kintone で作ったのは 2つのアプリです。このうち、チャットアプリでは Webhook の設定をしています。

ユーザー管理アプリ

f:id:dsstsukky:20170211110334j:plain:w450

チャットアプリ

f:id:dsstsukky:20170211110406j:plain:w450

DataSpider Cloud 側の実装

DataSpider Cloud 側で作ったスクリプトも2つです。

LINE からのデータを kintone に書き込むスクリプト

f:id:dsstsukky:20170211113547j:plain:w600

kintone からのデータを LINE に送るスクリプト

f:id:dsstsukky:20170211113727j:plain:w300

ユーザー側の使い方

※以下よりお友達登録できますが、今の設定だと向こう側にいるのは私だけなので 30代半ばのおっさんと喋ることになります。それでも構わないという方は是非お友達登録を!

f:id:dsstsukky:20170211095327p:plain:w200友だち追加

スマホ側
  1. スマホを持って LINE で会話する方の人は、まずこのアカウントと友だちになります。

  2. 最初の返事でこのように名前を聞かれます。名乗らなくても会話を続けることもできますが、kintone 側の人にとっては誰からのメッセージなのかわからないので名乗ってあげましょう。スマホ側はあとは特にやることはありません。普通の LINE アカウントだと思って会話しましょう。

f:id:dsstsukky:20170211115521p:plain:w300

kintone 側

  1. スマホ側で名前を送ると kintone 側にはチャットのログにこのように表示されます。1つ目のレコード(68)は DataSpider Cloud が自動で生成したメッセージで、2つ目のレコード(69)がスマホ側の人が送ってくれた名前です。 f:id:dsstsukky:20170211120143p:plain:w450

  2. ここでユーザー管理アプリへ行き、見知らぬ人YYYYMMDD と表示されているユーザーがいるので、LINE から送られてきた名前に書き換えます。  そうすることで、以降のやりとりはこの名前から送られてきたということがわかります。 f:id:dsstsukky:20170211120452p:plain:w450

  3. メッセージを送りたいときには「チャット」アプリを使います。この時、送信先はルックアップで「ユーザー管理」アプリから選択します。 f:id:dsstsukky:20170211115718p:plain:w450

未実装機能

以下の機能は実装していません。

  • スタンプの送受信

  • 画像・動画の送受信

宣伝

この超楽しい kintone の Webhook と DataSpider Cloud の組み合わせは「DataSpider Cloud 全国セミナー ~kintone 編~」にてご紹介させていただきます。少しでも興味を持っていただいた方は是非足を運んでいただければと思います。

 DataSpider Clous 全国セミナー ~kintone 編~

今回一緒に書いた2つの記事はこちらからどうぞ。

 Webhook を使って kintone から LINE にメッセージを送る

 Webhook と Thunderbus で超便利!

Webhook を使って kintone から LINE にメッセージを送る

ついに来た! Webhook

2017/2/12 の定期メンテンナンスにて、kintone のアップデートが行われ Webhook の機能が実装されました。

主要なアップデート(2017年2月) | 製品情報 | ファストシステムを実現したクラウドサービス「kintone」

これにより kintone のレコードへの[追加][更新]、[ステータスの変更]が行われた際に、他の Webサービスに通知を行うことができるようになりました。

f:id:dsstsukky:20170208111031p:plain

アップデートに先駆けて Cybozu developer network で Webhook に関する記事が公開されています。私にとっても Webhook は本当に楽しみで誰よりも早く記事を書こうとアップデート公開前から準備していたですが、まさかリリース前に記事が出てしまうとは・・・

悔しさと勢いで 3つ記事を書きました。まずは簡単に kintone から LINE にメッセージを送るという内容になります。

他の記事はこちら

  kintone と LINE でおしゃべりする

  Webhook と Thunderbus で超便利!

サイボウズさんの記事では Zapier を使って連携する例が書かれています。確かに Zapier を使えば JSON の型変換ができ、いくつかのサービスに連携できます(Slack や Gmail など)。しかし、Zapier の連携先(Action)には日本人の大好きな LINE がありません!

f:id:dsstsukky:20170210183207j:plain

なんということでしょう・・・kintone から LINE への通知はダメなのか・・・

悲しむことはありません。連携先に柔軟な DataSpider があるじゃないか。 ということで、早速作っていきます。

やりたいこと

使うアプリはこれです。アプリストアにある「迷子・落し物管理アプリ」を簡易にしたものです。

f:id:dsstsukky:20170210174132j:plain:w450

この kintone アプリに書き込まれた内容を LINE に通知したいと思います。

別の記事ではオンプレミスにある基幹システムとの連携を行うためパッケージ版の DataSpider を使っていますが、今回は API 連携ということで 2017/1/22 にリリースされたばかりの DataSpider Cloud を使って開発していきます。

スクリプト作成イメージ

設定は簡単です。

まずは kintone からデータを受信する部分ですが、XML 型の変数を作ります。ここに Webhook で送信されたデータが入ってきます。

f:id:dsstsukky:20170210091658j:plain:w450

続いて、LINE への送信設定を行います。LINE Messaging API のページを見ると、Curl コマンドでの送信例がありますのでこれを参考にします。

f:id:dsstsukky:20170131224132p:plain:w450

これを DataSpider の設定に落とし込むと以下の通りとなります。

まずはアクセス先の LINE Messaging API の URL 設定をグローバルリソースで行います。

f:id:dsstsukky:20170210092128j:plain:w450

続いて、RESTアダプタ(POST)の必須設定で基本的な設定を行います。上記グローバルリソースの URL と「パス」に書いた文字列を合わせた文字列がアクセス先のURL となります。

f:id:dsstsukky:20170210091906j:plain:w450

リクエスト設定では送信するデータの形式を選択します。

f:id:dsstsukky:20170210091919j:plain:w450

ヘッダ設定では Content-Type と Authorization(LINE@Manager で取得したChannel Access Token)を設定します。

f:id:dsstsukky:20170210091926j:plain:w450

そして後回しにしていた JSON 部分の設定を行います。

f:id:dsstsukky:20170210175341j:plain:w450

画面の右側に表示されているのが LINE Messaging API に送信するデータの構造、左側が kintone から Webhook で送信されてくるデータの構造です。実際にはいずれも JSON でやり取りするのですが、DataSpider では内部的に XML に変換しており、このように表示されています。

アイコンがいくつか並んでいるのは、単純に kintone のレコードに登録されたデータを送信しても文字の羅列で見づらいので助詞を補ったりするのとともに、日付を UTC から JST に変換したりしています。

スクリプトの設定は以上です。最後に、kintone が Webhook を送信する先である HTTP トリガーの設定を行います。

f:id:dsstsukky:20170210175537j:plain:w450

パッケージ版の DataSpider の場合は上記設定でお終いですが、DataSpider Cloud は管理画面でも設定を行い、ここに表示される URL にクエリパラエータ認証を加えたものが Webhook で指定する URL となります。

f:id:dsstsukky:20170210182355j:plain:w450

この URL を kintone 側の Webhook URL として設定します。

f:id:dsstsukky:20170210182011j:plain:w450

以上で完了です。

動かしてみよう

kintone の画面でデータを入力、保存します。

f:id:dsstsukky:20170210174132j:plain:w450

すると、携帯がブルブルっと震えます。

f:id:dsstsukky:20170210174251p:plain:w300

見事に kintone に登録された内容が綺麗に整えられて LINE まで届きました。

大して難しいことをやった訳ではないのですが、自分が作った仕組みによって LINE メッセージが飛んでくるとうれしいですね。

宣伝

この超楽しい kintone の Webhook と DataSpider Cloud の組み合わせは「DataSpider Cloud 全国セミナー ~kintone 編~」にてご紹介させていただきます。少しでも興味を持っていただいた方は是非足を運んでいただければと思います。

DataSpider Clous 全国セミナー ~kintone 編~

ノンプログラマー向けイベントを開催してみて

去る 1/20 にヤフーさん、サイボウズさんと共催で「カフェで学ぶ、3つのサービスを一度に体験!ノンプログラマー向けハンズオン」というイベントを開催しました。 f:id:dsstsukky:20170129113002j:plain

開催に至った経緯

サイボウズさんとは以前から仕事でも親しくさせていただいていましたが、ヤフーさんとは Mashup Awards をキッカケにこのところお会いすることが多くありました。名古屋のハッカソン時にお話を持ちかけたところ「是非やりましょう!」と快諾いただいたため、まずはやってみましょう、ということで第1回を開催させていただきました。

今回、私がこだわったポイントの一つに「ノンプログラマー向け」というのがありました。ここ2年 Mashup Awards をはじめとするいくつかのハッカソンイベントや kintone Café のようなイベントに参加しているのですが、参加者の多くの人がエンジニアでありもっとより多くの知識や情報を得るべきである営業やマーケの人が圧倒的に少ないと感じていました。

自分自身が営業でありながらイベント参加で得たものが凄く多いため、これを世の中の多くの人に感じて欲しいという思いもあり「ノンプログラマー向け」というのをタイトルにも入れて開催してみました。

イベントの様子

今回の会場は「スタートアップカフェ大阪」です。関西大学梅田キャンパスと同じビルにあり、各線梅田駅から5分以内とアクセスも抜群です! f:id:dsstsukky:20170129111906j:plain

会場の広さとスタッフの人数を考慮して 20人を定員としていたのですが、あっという間に満席になっていました。申込みを管理してくださったスタートアップカフェの方に聞いたところ、キャンセルがでてもすぐに埋まってしまっていたそうで、「ノンプログラマー向け」というキーワードが良かったのか、他の要因だったのかは要調査です。

まずは皆さんの緊張をほぐすためにアイスブレイクということで、配ったカードを使った自己紹介で参加者の皆さん同士で打ち解けていただきます。(写真は説明をする寸劇の図) f:id:dsstsukky:20170129115957j:plain

皆さん打ち解けていただいて席替えも終わったところで、早速ハンズオンが始まります。

kintone ハンズオン

最初はサイボウズ 竹内さんより kintone のハンズオンです。 f:id:dsstsukky:20170129120036j:plain

ドラッグ&ドロップでアプリができることに皆さん感動されていました。更に、kintone を導入したいと思っていた方も参加されており、操作の簡単さを知っていただけた良い機会になったと思います。

DataSpiderハンズオン

続いて、私からは DataSpider のハンズオンです。(写真は無いので資料を) f:id:dsstsukky:20170129114606j:plain

今回の最終ゴールは Instagram のいいね!数を取得して、kintone を使ってグラフ表示するということです。DataSpider は myThings から受け取ったデータを kintone が受け入れられる形式に変換して渡してあげるというところです。

DataSpider の機能としては比較的難しい(と思われる)部類の REST アダプタや HTTP トリガー を使うのですが、今回は対象の方が非プログラマーということもあり、全てを設定していただくのではなく雛形を予め作っておき、穴埋め式で設定していただくことにしました。 f:id:dsstsukky:20170129114451j:plain

とはいえ、やはり用語が少し小難しいところもあって多少苦労される方もいらっしゃって、少し時間オーバーしてしまいました。

myThings ハンズオン

最後はヤフーの清土さんから myThings (Developers) のハンズオンです。 f:id:dsstsukky:20170129120106j:plain

まずは簡単に体験していただくために、LOHACO ダッシュボタン なるものを作成してみます。 その後、DataSpider を呼び出して、最終的に kintone でのグラフ表示までを確認します。

myThings はガイドが出てくるのが凄く好評だったように思います。 f:id:dsstsukky:20170129115941j:plain

まとめ

ハンズオン終了後は、30分ほど雑談&質問タイムです。

参加者の方にお話を伺ってみると、「kintone を導入したいと思っていたけど触る機会が無いのでありがたかった」という声や「普段はインフラばっかりやっているので、アプリを気軽に体験できると思ってきた」というご意見があり、当初の目的を少しは達成できたのかなと思っています。

一方で申込みがすぐ満席になった割に当日の出席率が低く、金曜日の19時~22時というのは少し考え直したほうが良いかななど反省点も残ります。

とはいえ、今までと違ったスキームで新しい層にアプローチするというチャレンジができ、ある程度の成果もあったのでまずは良かったかな、と思っています。次の企画を練るのが楽しみです。