Node.js で Cogbot をつくる(Hello World編)

準備編から更新がかなり空いてしまいましたが、実作業に入りましょう。このフェーズでは、ローカルで Cogbot というかボットを作成して、Hello World するところまで行います。

 

VSTS のプロジェクトから開発用環境の作成

準備編で作成した VSTS のプロジェクトからローカルに開発環境を作成します。

上のほうのバーの Code をクリックします。

2017-03-30_16h25_46

 

右上の Clone をクリックします。

2017-03-30_16h51_46

 

今回は Command line を使用します。一番上のリンクの隣のコピーボタンをクリックします。

Visual Studio などの IDE を使っている場合は、一番下の IDE のプルダウンメニューを選択し、Clone in (IDE名) をクリックすることで直接 Clone 可能です。

2017-03-30_16h55_33

 

Git Bash を起動し、任意の作業フォルダに移動します。

$cd C:tempnodebot

$git Clone [コピ$cd C:tempnodebotーしたURL]

2017-03-30_17h12_19

コピーしているときの、アスキーアートがちょっとだけカッコいいです。

※クローン時に、ブラウザでの認証が入るので、 VSTS のユーザー ID / パスワードでログインします。

 

Bot Framework と HelloWorld の組み込み

コマンドプロンプトを起動し、作業フォルダに移動します。作業フォルダはプロジェクト名(今回は MyFirstProject )まで階層にはいってください。

>npm init

>npm install –save botbuilder

>npm install –save restify

 

ドキュメントにあるサンプルソース(下記)をエディタに張り付けて、server.js というファイル名で保存します。

var restify = require('restify');
var builder = require('botbuilder');

//=========================================================
// Bot Setup
//=========================================================

// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
   console.log('%s listening to %s', server.name, server.url); 
});
  
// Create chat bot
var connector = new builder.ChatConnector({
    appId: process.env.MICROSOFT_APP_ID,
    appPassword: process.env.MICROSOFT_APP_PASSWORD
});
var bot = new builder.UniversalBot(connector);
server.post('/api/messages', connector.listen());

//=========================================================
// Bots Dialogs
//=========================================================

bot.dialog('/', function (session) {
    session.send("Hello World");
});

 

動作確認

コマンドプロンプトで作業フォルダで下記コマンドを実行します。

>node server.js

2017-03-30_18h31_59

 

Bot Framework Emulator を起動します。

左上のアドレスバーに http://localhost:3978/api/messages と入力します。

2017-03-30_18h38_04

 

 

2017-03-30_18h39_21

 

 

参考ドキュメント

Getting Started What is Bot Builder for Node.js and why should I use it?

https://docs.botframework.com/en-us/node/builder/overview/

BotBuilder/Node/examples/

https://github.com/Microsoft/BotBuilder/tree/master/Node/examples

 

余談

VSTS のプロジェクトのリンク、前回のポストで隠してたような気もするんですが URL の表示で丸裸でした。更に言うと、VSTS のプロジェクトはプロジェクト参加者のみなので、そのままでもいいかなと少し思いました。

 

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

広告

【書評】認められたい

書評という名の読書感想文シリーズです。この書籍、お目にかかったことはないので一方的に存じ上げている外資系OLのぐだぐだ(現在、トイアンナのぐだぐだ)で有名なトイアンナ女史がツイッターでご紹介されていたのが通勤途中の書店で気になって手に取り立ち読みしたら著者の熊代さんも石川県出身ってことで即お買い上げしてしまった本です。

はっきりいってタイトルと表紙が内容の良さをダメにしている本の代表格かと

承認要求について、専門家がきちんと書いている内容なのですが、この表紙とタイトルだとまるで私が承認要求の権化で認められたくてたまらないから本で勉強しているように見えて持ち歩いて読むにあたってちょっと恥ずかしかったです。うまいイラストではあるのですが、少し寂し気で不満げな表情の男女の真ん中に大きなフォントで認められたいって書かれると…なぁ。できればもう少しタイトルと装丁を専門書らしく考慮してほしかったです。

 

例えばこんな経験ありませんか?

私の裏側での貢献で何をしても評価しようとしなかった人が、同僚の人が大したことというか、プロジェクトに名前が載っていたという程度のことしかしていないのに(ほかの人の助けで)目立つことをやって「すごーい!応援してます」ってのをやっていて、嫉妬とかより先に気持ち悪さしか覚えなかったこととか。

当時のことを俯瞰すると、私を評価しなかった人達から唐突に「あなたは、ほめてほしいのよね」っていう気持ち悪い言い方をされたことがあって、違う、それは「ほめてほしい」っていうよりはどちらかというと、「やってることを平等に認めてほしい」ってことだったので、今思えば私は承認要求を拗らせていたのかもしれません。

 

そもそもなんでこの本読もうと思ったかというと、現職のロールのせいなのか社風なのかわからないのですが、前職時代どう逆立ちしても聞かなかった言葉としてアスペルガー症候群(自閉症スペクトラム)という言葉以上に承認要求ということばをよく耳にしまして、更に周囲にいるいろいろな人が日常的に SNS でモるのを生暖かく俯瞰していてなんだかなって思っていたのを心理的にもきちんと理解して自分にもゼロじゃない承認要求とうまくつきあいたいなと思ったからです。

 

確かに SNS って便利で、たとえば4日間のイベントに5分しか顔を出さなくても、かわいらしい自撮り画像や集合写真と共に「最後にみんなで記念撮影!」とか書くとずっとその対応していたかのように盛ることができてしまうわけです。そういう虚飾をいろいろな人が繰り返すのを何度も見てきて、正直なんでこの人たちはこんなに常に自分を盛ることで「どや!すごいだろ!」ばかりやるのかな?実際会えば、よっぽど見る目が無い人以外にはどの部分を盛っているのかぐらいすぐにわかるのに…って思ってきました。そして、その中には会社の中での出来事やインターナルな情報をどうして「所属する団体とは関係のない個人の発言」でいろいろと公にしちゃうのかな、とか会社の中で写真撮るときほかにだれか映ってないかとか確認してから SNS にあげないのかなとか「炎上したら個人の発言でも会社に泣きつくのなんでかな」とかいろいろと生暖かい気持ちになったことがあります。

キャバ嬢さしすせそもしくはけものフレンズ並みの語彙力で、自分に対しての高評価だけをエゴサーチして何度も周囲に目の届くように持っていく形でいつの間にか、自己承認要求を常に満たすことも可能です。この本には炎上を繰り返す人についても記載があり、心当たりのある出来事ばかりだなと思いました。その反面、そういう人たちとうまくやるには常に「すごーい!すごいねー!」と一定の語彙力で承認行為を繰り返していればいいのかなということも本の内容からつかむことができました。嘘は苦手なので、これから偽りの承認行為をうまくできるように修行したいと思います。

 

この本のとてもいいことは、誰にでも程度の違いはあれ存在する自己承認要求とどのようにつきあっていったらよいのかということについて、実際の患者の症例を元にわかりやすい文章で説明されているところです。できることならば、現在、承認要求を拗らせているすべての人たちに読んでもらいたいそんな書籍でした。

 

恐らくこのブログ記事をご覧になった、心当たりのあると思われる方からフィードバックを受けましたが、正直具体性がなく誰のこととも書いていない、批判もリークもしていない内容で一喜一憂しないでいてほしいです。心当たりがあるのであれば、是正していけばいいだけではないでしょうか。読書感想文にめくじら立てられたら言論の自由もなくなりますよね。

それとも、私の粗探ししてレポーティングするのが趣味の暇な方でもいらっしゃるのかしら。

【書評】アジャイルでやってみた

書評という名の読書感想文シリーズです。

こちら、お誕生日に友人から贈られた書籍なのですが、著者の方も直接存じ上げている方や1ホップでつながる方ばかりという読むのに緊張してしまう本でした。

そんな先入観はさておき、内容は前半がストーリー形式でアジャイルにはじめて取り組む開発グループのメンバーのやり取りを通してアジャイル開発とは何か、どういうところに気を付けるか、どういうところに陥りがちかということを楽しく学んでいけるものです。

この本何が素敵かというと、私が現職で触るようになって、その機能の多さからかすべてマスターしきれていなくて、いつも必要に応じて周りの人から教えてもらっている VSTS = Visual Studio Team Services の機能(知ってるものも知らないものも)の具体的な利用法も組み込まれててすごく役に立ちました。

恥ずかしげもなく書くと、入社当時はVSTS って昔の Visual Studio Source Safe の SaaS ?ぐらいにしか認識なかったんですが、何度かハッカソンやHackfest で利用するうちにこんなに便利なツールなら使わない手は無いなと思うようになりました。(当時、いろいろ勘違い酷くて、ツールチームの同僚の方には呆れられてたことだと思います。少しこそばゆい恥ずかしさありますね。)

この本にも明記されてるんですが、マイクロソフトのイメージが昔である人にこそ、このツール使ってほしいと思っています。

もちろん、OSS やフリーウェアにはそれぞれの良さがあるのですが、開発の現場で開発のリポジトリ管理やステージング管理、テスト管理のインフラ構築といったいわゆる余計なところに手を出す必要は無いのではないかと。

そんなしょうもないことで「くそっ!インフラエンジニアめ!」とは、開発者の人に絶対言われたくないですからねぇ。

さて本題にもどると、この本の後半は完全にリファレンスになっています。VSTS は SaaS なので UI とか少しは変わってるかもしれませんが、日本語で読める解説としては武田さんの公開してるドキュメントに匹敵するクオリティで、書籍だから職場の図書費として清算しやすいのもメリットのひとつかもしれません。

開発の現場に1冊は置いておいたらいいんじゃないかなと思いました。(その前に VSTS 使ってねってのが先ですが…)

【書評】旅猫リポート

書評という名の読書感想文シリーズです。通勤の途中で通りかかった書店で面置されていたので有川浩さんの新作かな?と思い立ち文庫版を購入しました。

アウトプットを継続するためにはインプットも倍以上必要だと考えるので、そのきっかけになるかなと思い立ち、積んでた本を押しのけて読みふけってみました。

文章は相変わらずの読みやすい感じ。話題はノラの主人公(の猫)とその飼い主(というか拾った人)の不思議な旅を通じて、飼い主の過去を見ていく回顧録のような流れです。川村元気さんの「世界から猫が消えたなら」重松清さんの「流星ワゴン」に少し通じる終焉を感じるお話です。

ネタバレしないように感想が書けるかなと思いましたが、ほぼ無理なんでちょっとだけ内容に触れると、ネコと犬の違いにも触れてる内容で、会ったこと無いけどこの主人公がどんな人物でどういう育ち方をしたのだなというのが想像しやすかったです。

絵本や児童向けとしても出ているのですが、恋愛やそのほかの細部のニュアンスは大人にならないと理解が辛いのじゃ無いかなと思いました。私にとって子供の頃に親戚のお姉さんが読んでたのがきっかけで出会った新井素子さんの本同様に、繰り返し読むのもいいと思います。

みほの日だったので、大分で地獄を見てきた。

意味深なタイトルつけてみました。古閑美保さんのニュースで初めて知ったのですが、3月4日はみほの日だそうです。来年から、みほだけが参加できる会でも企画しようと固く決意を行った次第です。さておき、先日 IT 女性エンジニアではなく OL だということが明らかになり、どこかへマイルで出かけることにしたわけでしたが、実際の旅のレポート書いてなかったなと思い立って備忘録がてら書き散らしてみます。

 

旅程

旅程は弾丸ツアーだったのでエアの予約はこんな感じです。実質6時間ぐらいしかない!(弾丸ツアーの醍醐味ですね)

[便名] JL0661 東京(羽田) → 大分
[発着予定時刻] 08:00 ‐ 09:40

レンタカー予約 9:00- 18:30 (トヨタレンタカーの JAL さんのサイトから申し込むと最安値の割引率でしかも新車のヴィッツハイブリッドでした。)

燃費がよくて、150キロで6.7リットルでした。

[JAL/九州応援企画]20%割引きキャンペーン(ハイブリッド車・ナビ・ETC車載器標準装備)
[料金合計] ¥7,128 (安いぞ!)
[便名] JL0674 大分 → 東京(羽田)
[発着予定時刻] 19:10 ‐ 20:40

2017 Oita

2017 Oita

2017 Oita

2017 Oita

たまに、弾丸もよいなと感じたのでどこかへマイルはいい方法だと思いました。めちゃくちゃ疲れたから花粉の時期が終わったら、第2弾企画してみたいと思います。

Node.js で Cogbot をつくる(準備編)

はじめに

こんにちは。進捗がダメだったので、なかなかこっちのブログ更新せずに、あっちのブログ(Flow とか、Teams はなんとなくあっちだとか考えてたんで。)ばっかり更新して逃げててすみません。 実は、最近まで Teams がGAしてなかったことも知らなかったという、酷い状態でした。

先日、社内ハッカソンのお題のひとつが Bot Framework だったのですが、 無謀にも Node.js を使って挑戦したところ、いろんなところにどはまりポイントがあったので、備忘録がてらまとめようと思ったので執筆時時点の情報をまとめておきます。

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

 

準備編(Node.js, Visual Studio Code, GitHub, Azure など)

Node.js

Node.js のサイト(https://nodejs.org/en/)からコンポーネントを DL してインストールしておきます。

2017-03-11_16h33_39

 

Azure のアカウントを作っておきます。今回利用するのは WebApps 無償枠でもよいので、DevEssential 等の無償のサブスクリプションでも大丈夫です。

今回は Windows 10 のマシンと Visual Studio Code をソースのデプロイに、Visual Studio Team Services を使いました。

 

Visual Studio Team Services

誰でも1つ以上は持ってるであろう、マイクロソフトアカウントを使って visualstudio.com にアクセスします。

Visual Studio Team Services を開始すると出てるので、選択しましょう。

2017-03-11_16h32_32

Pull Request がカッコいいので、Git でソース管理します。

2017-03-11_16h35_23

プロジェクトできました。

2017-03-11_17h06_10

 

or Initialize with a README or gitignore を選んでgitignore のところで Node を選んで Initialize をクリックしておきます。

 

これで連携準備できました。

2017-03-11_17h37_53

 

Azure Web Apps の作成と Team Services の連携

Azure Portal (http://portal.azure.com) にアクセスします。

1.展開元のセットアップ

2017-03-11_17h28_16

 

左下の「その他のサービス」を選んで「Team Services accounts」を選択します。

2017-03-11_17h32_04

 

先ほど作成したアカウントを選択します。

2017-03-11_17h32_20

 

Build and Deployment Service を選択します。

2017-03-11_17h32_34

「開発者プログラム特典」を選択してLink をクリックします。

2017-03-11_17h32_50

 

2.展開先のセットアップ

ポータルからWeb Apps を作成します。

2017-03-11_17h28_42

 

アプリ名、サブスクリプション(選択)、リソースグループ(新規作成か既存かは任意)を選びます。

無償プランで作成する場合は、App Service プランを選択し、新規作成時に無償のものを選択します。

2017-03-12_09h31_39

 

2017-03-12_09h34_56

 

2017-03-12_09h34_20

 

展開元でソースを Visual Studio Team Services を選択します。

そうすると、Team Services にソースをコミットするたびに自動的にデプロイつまり Continuous Integration を行うことができます

2017-03-11_17h36_29

 

2017-03-11_17h36_40

準備は以上となります。

 

そのほか:ツールやAzure の利用権など(途中で割愛)

visualstudio.com画面に戻ります。

2017-03-11_16h32_32

 

2017-03-11_17h07_59

Visual Studio Code では Node.js 関連のエクステンションを入れておきます。

 

GitBash

GitHub のためのツール GitBash をGit for Windows のサイトhttps://git-for-windows.github.io/ からダウンロード&インストールします。

2017-03-11_17h23_56

 

 

 

参考リンク

Node.js サイト

https://nodejs.org/en/

 

What is Bot Builder for Node.js and why should I use it?

https://docs.botframework.com/en-us/node/builder/overview/