<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Ken’s Tech Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/kenakamu/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/kenakamu/feed.xml</link>
    <description />
    <lastBuildDate>Mon, 08 Jan 2018 12:15:47 GMT</lastBuildDate>
    <language>ja</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>リッチメニューで LINE ボットの UX を向上</title>
      <link>https://docs.microsoft.com/archive/blogs/kenakamu/improve-ux-with-rich-menus-for-your-line-bot-ja</link>
      <pubDate>Mon, 08 Jan 2018 21:15:47 GMT</pubDate>
      <dc:creator><![CDATA[Kenichiro Nakamura]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenakamu/?p=22795</guid>
      <description><![CDATA[あけましておめでとうございます。

昨年 LINE ボットの UX 新機能としてリッチメニューの拡張が発表されました。概要はこちらをご覧ください。これまで 1 つだけ設定できたリッチメニューが...]]></description>
      <content:encoded><![CDATA[あけましておめでとうございます。

昨年 LINE ボットの UX 新機能としてリッチメニューの拡張が発表されました。概要は<a href="https://developers.line.me/ja/docs/messaging-api/using-rich-menus/">こちら</a>をご覧ください。これまで 1 つだけ設定できたリッチメニューが API 経由で操作できるようになっています。
<ul>
 	<li>最大 10 のリッチメニューが作成可能。また各メニュー毎に 20 のエリアが設定可能。</li>
 	<li>任意のリッチメニューを任意のユーザーに設定可能。</li>
</ul>
これにより、ユーザーの状態やキャンペーン期間中など動的にリッチメニューを差し替えることができるため面白いシナリオを実装出来そうです。

<span style="color: #0000ff"><strong><u>リッチメニューマネージャー</u></strong></span>

まずリッチメニューを作る必要があり、API が公開されていますが、GUI で簡単にできるようにツールを作りました。

<strong><u>前提条件</u></strong>

Node.js: バージョン 8.7 で検証済

ブラウザ: Chrome で検証済

<strong><u>インストール</u></strong>

1. 以下コマンドでインストール
<pre>npm install –g line-richmenus-manager</pre>
macOS の場合は必要に応じて sudo 実行。
<pre>sudo npm install –g line-richmenus-manager</pre>
2. ツールがインストールできたら以下コマンドで実行。
<pre>line-richmenus-manager –port:3000</pre>
ポート番号を省略した場合はポート 3000 で起動します。

3. Chrome で <a href="https://localhost:port/">https://localhost:port</a> にアクセス。

4. Channel Access Token を指定して OK をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image67.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb67.png" width="990" height="246" /></a>

<span style="color: #0000ff"><strong><u>リッチメニューの作成</u></strong></span>

1. 画面上部の [+] アイコンをクリック。

2. Name と ChatBar Text を入力。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image68.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb68.png" width="930" height="144" /></a>

3. Choose File ボタンからファイルを選択。ファイルはサイズ 2500×1686 または 2500×843 ピクセルで、PNG か JPEG 形式が必須。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image69.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb69.png" width="1499" height="589" /></a>

4. マウスで画像上に領域を指定。指定後に x/y/width/height を直接変更して微調整可能。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image70.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb70.png" width="919" height="279" /></a>

5. タイプと必要な値を入力して、Add Area をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image71.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb71.png" width="456" height="386" /></a>

6. 追加したエリアは番号から画面上のどこに紐づいているか確認可能。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image72.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb72.png" width="684" height="114" /></a>

7. 削除アイコンをクリックして削除が可能。または追加後も値を変更が可能。

8. 全てのエリアを追加したら、CREATE RICHMENU をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image73.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb73.png" width="1028" height="371" /></a>

<span style="color: #0000ff"><strong><u>詳細を確認</u></strong></span>

メイン画面では全てのリッチメニューの一覧と詳細を確認できます。

1. 左のリッチメニュー一覧より詳細を確認したいメニューをクリック。一覧の更新は画面上部からリロードアイコンをクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image74.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb74.png" width="462" height="334" /></a>

2. 右ペインに詳細が表示。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image75.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb75.png" width="1028" height="537" /></a>

3. 削除したい場合、DELETE RICH MENU をクリック。

4. 任意のユーザーに対して紐づけおよび解除が可能。メニューをクリック後 UserID を入力して、OK をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image76.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb76.png" width="976" height="229" /></a>

<span style="color: #0000ff"><strong><u>ユーザーに紐づいたリッチメニューを検索</u></strong></span>

あるユーザーに紐づいているリッチメニューを確認したい場合は検索ができます。

1. 画面上部の検索アイコンをクリック。

2. UserId を入力して Enter を押下。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image77.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb77.png" width="601" height="67" /></a>

<span style="color: #0000ff"><strong><u>チャネルトークンの更新</u></strong></span>

トークンを更新する必要がある場合は、以下の手順で更新できます。

1. 画面上部の設定アイコンをクリック。

2. チャネルアクセストークンを入力して OK をクリック。

リッチメニューを作成してユーザーに紐づけたら、実機かシミュレーターで動作を確認してください。

<span style="color: #0000ff"><strong><u>シミュレーターで確認</u></strong></span>

シミュレーターの詳細は<a href="https://blogs.msdn.microsoft.com/kenakamu/2017/12/14/improve-line-bot-development-productivity-with-simulator-ja/">こちらの記事</a>を確認してください。

<strong><u>リッチメニューのシミュレーション</u></strong>

1. シミュレーターを起動したら、リッチメニューアイコンをクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image78.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb78.png" width="79" height="67" /></a>

2. リッチメニューが表示されたら、設定したエリアをクリックして動作を確認。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image79.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb79.png" width="585" height="915" /></a>

3. 以下はポストバックを設定した場合の動作。

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image80.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb80.png" width="578" height="902" /></a>

<span style="color: #0000ff"><u><strong>まとめ</strong></u></span>

リッチメニューを使うと UX を大幅に向上できますので、是非使ってみてください。

中村 憲一郎]]></content:encoded>
    </item>
    <item>
      <title>Improve UX with Rich Menus for your LINE Bot</title>
      <link>https://docs.microsoft.com/archive/blogs/kenakamu/improve-ux-with-rich-menus-for-your-line-bot</link>
      <pubDate>Mon, 08 Jan 2018 00:55:39 GMT</pubDate>
      <dc:creator><![CDATA[Kenichiro Nakamura]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenakamu/?p=22785</guid>
      <description><![CDATA[Happy New Year!

Months ago, LINE released new UX feature, Rich Menus. You can find the overview...]]></description>
      <content:encoded><![CDATA[Happy New Year!

Months ago, LINE released new UX feature, Rich Menus. You can find the overview <a href="https://developers.line.me/en/docs/messaging-api/using-rich-menus/">here</a>. Yes the feature was there from the first place, but now you can do the following.
<ul>
 	<li>Create up to 10 rich menus, with 20 actions for each menu.</li>
 	<li>Assign any rich menu to a user.</li>
</ul>
This is powerful and you can switch the menu depending on context such as if the user is new to the bot or if you have special offer during some period depending on user age, gender, etc.

<span style="color: #0000ff"><strong><u>Rich Menus Manager</u></strong></span>

First thing first. You need to create your own rich menus. API is available but you may prefer GUI to do it. There is a tool for you.

<strong><u>Prerequisites</u></strong>

The tools runs on Node.js and npm. so install them. And I recommend using Chrome browser as I only tested the tool against Chrome only.

<strong><u>Install</u></strong>

1. Install the package with following command.
<pre>npm install –g line-richmenus-manager</pre>
If you use macOS, then run the following command.
<pre>sudo npm install –g line-richmenus-manager</pre>
2. Once the tool installed, run the following command to run it.
<pre>line-richmenus-manager –port:3000</pre>
If you omit the port, it runs on 3000. Use sudo for macOS.

3. Open Chrome and access to <a href="https://localhost:port">https://localhost:port</a>

4. Enter Channel Access Token and click OK. If you already have rich menus, it will list them.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image67.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb67.png" width="990" height="246" /></a>

<span style="color: #0000ff"><strong><u>Create Rich Menu</u></strong></span>

You can easily create the rich menu.

1. Click [+] on top menu.

2. Enter Name and ChatBar Text.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image68.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb68.png" width="930" height="144" /></a>

3. Click Choose File to select file. The file should be Size: 2500x1686 or 2500x843 pixels of PNG or JPEG. Once you select valid image, it will be loaded.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image69.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb69.png" width="1499" height="589" /></a>

4. Use mouse to draw rectangle on the image. You can redo as much as you want, or tweak the value in x/y/width/height directly to do pixel level adjustment.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image70.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb70.png" width="919" height="279" /></a>

5. Select type and enter necessary data, then click “Add Area”.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image71.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb71.png" width="456" height="386" /></a>

6. You can easily identify where the area mapped to the image by referring to the image.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image72.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb72.png" width="684" height="114" /></a>

7. Use delete icon to delete the area if you want to re-add, or you can still change the values after you added the area.

8. Once you completed all the areas, click CREATE RICHMENU.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image73.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb73.png" width="1028" height="371" /></a>

<span style="color: #0000ff"><strong><u>See the detail</u></strong></span>

Once you created the rich menu, you can select a rich menu to see the detail.

1. Select newly added Rich Menu from the list. If you don’t see the list, then click recycle icon on the menu.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image74.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb74.png" width="462" height="334" /></a>

2. You see the detail on the right pane.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image75.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb75.png" width="1028" height="537" /></a>

3. If you want to delete it, click DELETE RICH MENU.

4. You can LINK/UNLINK to the user from here, too. Click LINK or UNLINK button, then enter UserID.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image76.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb76.png" width="976" height="229" /></a>

<span style="color: #0000ff"><strong><u>Find a rich menu linked to a user</u></strong></span>

If you want to know which rich menu current the user is linked to, you can search it.

1. Click Search icon on the top menu.

2. Enter UserId to look for and hit Enter.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image77.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb77.png" width="601" height="67" /></a>

<span style="color: #0000ff"><strong><u>Update the Channel Access Token</u></strong></span>

In case you want to update the token, follow the steps below.

1. Click Gear icon on the top menu.

2. Enter Channel Access Token.

Okay, that’s it! Now you can check if the rich menu actually linked to the user by using real device or simulator.

<span style="color: #0000ff"><strong><u>Check the rich menu with LINE Simulator</u></strong></span>

<strong><u>Install the simulator</u></strong>

If you don’t know the tool yet, refer to <a href="https://blogs.msdn.microsoft.com/kenakamu/2017/12/04/improve-line-bot-development-productivity-with-simulator/">this article</a> for detail.

<strong><u>Simulator the Rich Menu</u></strong>

1. Once you start the simulator, click Rich Menu icon.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image78.png"><img title="image" style="padding-top: 0px;padding-left: 0px;margin: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb78.png" width="79" height="67" /></a>

2. Then you see the rich menu. You can play with it as well. Click the area you assigned to.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image79.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb79.png" width="585" height="915" /></a>

3. In this case, as I create area as postback, it does postback and text message.

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/image80.png"><img title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2018/01/image_thumb80.png" width="578" height="902" /></a>

<span style="color: #0000ff"><strong><u>Summery</u></strong></span>

Rich Menu is a great differentiator to improve UX. Try them and please let me know what you have achieved with them!

Ken]]></content:encoded>
    </item>
    <item>
      <title>Quick POC with LINE bot simulator</title>
      <link>https://docs.microsoft.com/archive/blogs/kenakamu/quick-poc-with-line-bot-simulator</link>
      <pubDate>Sun, 24 Dec 2017 20:59:17 GMT</pubDate>
      <dc:creator><![CDATA[Kenichiro Nakamura]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenakamu/?p=22515</guid>
      <description><![CDATA[Happy holidays! I just added new feature to LINE bot simulator. You can find the simulator...]]></description>
      <content:encoded><![CDATA[Happy holidays! I just added new feature to LINE bot simulator. You can find the simulator introduction <a href="https://blogs.msdn.microsoft.com/kenakamu/2017/12/04/improve-line-bot-development-productivity-with-simulator/">here</a>.

So what’s the new feature? It’s POC feature.

<span style="color: #0000ff"><strong><u>Proof of Concept feature</u></strong></span>

This is more like mocking feature, that anyone can craft bot chat flow only from UI. The reason I implemented this is that I get tired of writing POC bot which simply shows what we can do to customer. Some people create mock demo by using screenshot and PowerPoint but I wanted to make this process easier.

<span style="color: #0000ff"><strong><u>Feature details</u></strong></span>

There are several thing you can do.

Send messages as user/bot

Easy to craft messages

Remove or move chat item as you want

Save and load the crafted chat so that you can import it to other environment

Let’s look into them one by one.

<span style="color: #0000ff"><strong><u>User the simulator</u></strong></span>

To use it, please read the instruction <a href="https://github.com/kenakamu/LINESimulator#line-bot-poc">here</a>.

Hope this makes your developer life easier.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/pocdemo.gif"><img width="1024" height="660" title="pocdemo" alt="pocdemo" src="https://msdnshared.blob.core.windows.net/media/2017/12/pocdemo_thumb.gif" /></a>

Ken]]></content:encoded>
    </item>
    <item>
      <title>Azure Bot サービスとLUIS が GA して変わったこと: その1 Azure Bot サービス</title>
      <link>https://docs.microsoft.com/archive/blogs/kenakamu/bot-service-and-luis-ga-whats-new</link>
      <pubDate>Sat, 23 Dec 2017 00:40:32 GMT</pubDate>
      <dc:creator><![CDATA[Kenichiro Nakamura]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenakamu/?p=22506</guid>
      <description><![CDATA[とうとう Microsoft Bot Framework と Azure Bot サービスがいよいよ GA しました！今回から数回で変わった点などを紹介します。今回は Azure Bot...]]></description>
      <content:encoded><![CDATA[とうとう Microsoft Bot Framework と Azure Bot サービスがいよいよ GA しました！今回から数回で変わった点などを紹介します。今回は Azure Bot サービスについてです。

<span style="color: #0000ff"><strong><u>Azure Bot サービス</u></strong></span>

Azure ポータルから作成できる Bot のサービスは 3 種類になりました。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image401.png"><img width="320" height="194" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb386.png" border="0" /></a>
<ul>
 	<li>Web App Bot: Web App とボット用のチャネル登録を統合したサービス</li>
 	<li>Functions Bot: Azure ファンクションとチャネル登録を統合したサービス</li>
 	<li>Bot Channels Registration: 既にボット用 API がある場合に使う、チャネル登録サービス</li>
</ul>
<span style="color: #0000ff"><u><strong>Bot Channels Registration</strong></u></span>

まずは全てに共通する Bot Channels Registration から見ていきます。これまでポータルでボット登録ができましたが、この機能でほぼ同じことが出来ます。

ウィザードにそって作成すると、以下のことをしてくれます。
<ul>
 	<li>Microsoft App Id の取得</li>
 	<li>Application Insights の構成 (選んだ場合)</li>
 	<li>ストレージの作成 (選んだ場合)</li>
</ul>
<strong><u>機能</u></strong>

作成された Bot Channels Registration を開くと以下のメニューが表示されます。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image402.png"><img width="735" height="632" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb387.png" border="0" /></a>

概要にはドキュメントとサンプルのリンクがあります。またタグまでの項目は他の Azure リソースと共通です。

以下に個人的に重要な順番でメニューを確認していきます。ほぼポータルであった機能です。

<u><strong>設定</strong></u>

設定ではこれまでポータルで登録できた、アイコンやメッセージングエンドポイントの指定等ができます。

<strong><u>チャネル</u></strong>

Skype や Teams など複数のチャネル設定が行えます。尚、以前は Skype が既定で構成されていましたが、今回から WebChat のみ構成されています。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image403.png"><img width="704" height="358" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb388.png" border="0" /></a>

<strong><u>Test in Web Chat</u></strong>

公開済のボットを Web チャットコントロールで検証できます。

<strong><u>分析</u></strong>

Application Insight を利用して収集したデータで、Bot の利用状況を確認できます。

<strong><u>Speech priming</u></strong>

LUIS と連携する場合に設定します。

<strong><u>Bot Service の料金</u></strong>

利用するサービスのレベルを選択できます。S1 にすると SLA がついてくるので、正式サービスは是非こちらで。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image404.png"><img width="468" height="484" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb389.png" border="0" /></a>

<span style="color: #0000ff"><strong><u>Web App Bot</u></strong></span>

次に Web App Bot です。機能としては上記の Bot Channels Registration に Web App がついてきますが、新規作成時に以下のことをやってくれます。
<ul>
 	<li>Web App の作成</li>
 	<li>メッセージングエンドポイントの設定</li>
 	<li>Microsoft App ID とパスワードの取得およびアプリケーション設定に値を設定</li>
 	<li>選択した言語でのボットアプリテンプレートの作成</li>
 	<li>Application Insights の構成 (選んだ場合)</li>
 	<li>ストレージの作成 (選んだ場合)</li>
</ul>
また Bot Channel Registration のメニューに ビルドと App Service の設定が追加されます。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image405.png"><img width="254" height="86" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb390.png" border="0" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image406.png"><img width="243" height="135" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb391.png" border="0" /></a>

<strong><u>ビルド</u></strong>

以下の内容が選択できます。ここから自動生成されたコードをオンラインで直接編集することも、ソリューションとしてダウンロードもできます。ダウンロードしたソリューションは、Web App に対する公開設定も含まれているため、簡単に発行が行えます。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image407.png"><img width="918" height="516" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb392.png" border="0" /></a>

オンラインエディターを使うと素早くコードの確認と変更が行えます。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image408.png"><img width="759" height="583" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb393.png" border="0" /></a>

<strong><u>アプリケーション設定</u></strong>

Web App のアプリケーション設定部分だけ確認、変更が出来ます。Microsoft App パスワードもこちらから確認可能。

<strong><u>すべての App Service 設定</u></strong>

関連付いている Web App へのリンクとなっているため、ワンクリックで Web App に移動が可能です。

<span style="color: #0000ff"><strong><u>Functions Bot</u></strong></span>

ほぼ Web App ボットと同じですが、Azure ファンクションが作成されます。それに伴いアプリケーション設定の値も Azure ファンクション用のものとなります。

<strong><u>ビルド</u></strong>

ビルドも内容はほぼ同じですが、はじめのメニューが Azure Functions へのリンクとなっています。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image409.png"><img width="401" height="208" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb394.png" border="0" /></a>

<span style="color: #0000ff"><strong><u>Bot Framework ポータル</u></strong></span>

最後に Bot Framework のポータル (<a href="https://dev.botframework.com/" title="https://dev.botframework.com/">https://dev.botframework.com/</a>) ですが、以下のように変わりました。

<strong><u>既存のボット</u></strong>

Migrate ボタンが表示され、ワンクリックで Azure サブスクリプションとの連携および移行が可能です。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image411.png"><img width="816" height="68" title="image" style="padding-top: 0px;padding-left: 0px;margin: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb395.png" border="0" /></a>

Migrate 画面では Azure サブスクリプションとリージョンを選択。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image412.png"><img width="744" height="622" title="image" style="padding-top: 0px;padding-left: 0px;margin: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb396.png" border="0" /></a>

規約画面

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image413.png"><img width="704" height="231" title="image" style="padding-top: 0px;padding-left: 0px;margin: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb397.png" border="0" /></a>

完了画面

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image414.png"><img width="747" height="220" title="image" style="padding-top: 0px;padding-left: 0px;margin: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb398.png" border="0" /></a>

上記ボタンをクリックすると Azure ポータルに遷移します。個の手順で移行した場合、Bot Channels Registration を作成して手動でメッセージングエンドポイントを設定した状態となります。

<strong><u>新規ボット</u></strong>

ボットを作成しようとすると、Azure ポータルに遷移します。

<span style="color: #0000ff"><u><strong>まとめ</strong></u></span>

Bot サービスが複数あることで一瞬混乱しますが、内容を抑えるととても簡単にかつ迅速に使えることが分かります。是非新しい Bot サービスをお試しください。次回は Language Understanding サービスを見ていきます。

中村 憲一郎]]></content:encoded>
    </item>
    <item>
      <title>Microsoft Bot Framework と LINE を連携して賢いボットを開発</title>
      <link>https://docs.microsoft.com/archive/blogs/kenakamu/develop-intelligent-line-bot-with-microsoft-bot-framework-ja</link>
      <pubDate>Fri, 15 Dec 2017 16:50:05 GMT</pubDate>
      <dc:creator><![CDATA[Kenichiro Nakamura]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenakamu/?p=22305</guid>
      <description><![CDATA[Microsoft はボット開発フレームワークとして Bot Framework (https://dev.botframework.com) を提供しています。主な機能としては...]]></description>
      <content:encoded><![CDATA[Microsoft はボット開発フレームワークとして Bot Framework (<a href="https://dev.botframework.com/">https://dev.botframework.com</a>) を提供しています。主な機能としては
<ul>
 	<li>一度書けば様々なプラットフォームに展開が可能。(skype, facebook, skype for business, slack, sms, email, など)</li>
 	<li>コンテキスト自動制御による、複雑な会話を実現するダイアログ機能</li>
 	<li>C#/Node.js SDK</li>
 	<li>Visual Studio 用テンプレートやエミュレーター</li>
 	<li>Microsoft コグニティブサービスとのシームレスな連携</li>
</ul>
個人的にはダイアログのサポートが最高です。もし一問一答ボット作るだけなら不要ですが、前回会話の内容を保持するなどスクラッチでダイアログ機能を作ることを考えると気が遠くなります。

では何が問題かというと、LINE を連携先として現時点でサポートしていないという点です。

<span style="color: #0000ff"><strong><u>解決策</u></strong></span>

Bot Framework では汎用的に使えるダイレクトラインという接続方法を提供しているため、こちらを使えばどんなプラットフォームとも連携が可能です。また既に C# でコネクタを開発済です。

<span style="color: #0000ff"><strong><u>対象者</u></strong></span>

既に Bot Framework でボット開発をしていて、 LINE にもつなげたい開発者

LINE ボット開発者で Bot Framework を使いたい開発者

<span style="color: #0000ff"><strong><u>前提</u></strong></span>
<ul>
 	<li>Microsoft Bot Framework bot アプリケーション。この記事では <a href="https://github.com/Microsoft/BotBuilder/tree/master/CSharp/Samples">GitHub</a> にあるサンプルを使います。</li>
 	<li>Visual Studio 2017</li>
 	<li>Azure サブスクリプション</li>
 	<li>LINE 開発者アカウントとボット登録</li>
</ul>
LINE 開発者アカウントとボットアカウントの登録は<a href="https://blogs.msdn.microsoft.com/kenakamu/2017/12/14/c-deline-bot-development-with-azure-function-for-cross-platform-ja/">以前の記事</a>をご覧ください。

<span style="color: #0000ff"><strong><u>セットアップ</u></strong></span>

<strong><u>Bot Framework</u></strong>

まず Bot Framework 側から設定します。ここではサンプルのサンドウィッチボットを使いました。

1. <a href="https://dev.botframework.com/">https://dev.botframework.com</a> から登録済のボットを開き、“Channels” を確認。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image81.png"><img width="704" height="449" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb79.png" border="0" /></a>

2. “Direct Line” をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image82.png"><img width="704" height="242" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb80.png" border="0" /></a>

3. “Secret Keys” をコピーして、“Done” をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image83.png"><img width="537" height="484" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb81.png" border="0" /></a>

<strong><u>Azure ストレージ</u></strong>

コネクターとなるアプリでは Azure ストレージを使って情報をトラックしているため、以下の手順でストレージを用意。

1. Azure ポータルにログイン <a href="https://portal.azure.com/">https://portal.azure.com</a>

2. ストレージアカウントを作成、もしくは既にある場合はそちらも利用可能。

3. アクセスキーのメニューより接続文字列をコピー。

<strong><u>LINE ボット</u></strong>

1. LINE 開発者ポータルよりボットアカウントを選択。

2. チャネルシークレットとチャネルアクセストークンを取得。

<strong><u>コネクター</u></strong>

1. Visual Studio 2017 を開いてツール | 拡張機能と更新プログラムを選択。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image298.png"><img width="507" height="112" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb288.png" border="0" /></a>

2. オンラインを選択して、“LINE Bot C#” を検索してインストール。必要に応じて Visual Studio を再起動。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image299.png"><img width="646" height="157" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb289.png" border="0" /></a>

3. 新しいプロジェクトより “LineWithBotFrameworkApplication” テンプレートを選択してプロジェクトを作成。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image300.png"><img width="704" height="219" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb290.png" border="0" /></a>

4. web.config を開いてパラメーターを設定。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image90.png"><img width="711" height="202" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb88.png" border="0" /></a>

5. 必要に応じて NuGet のリストアやアップデートを実施。

6. プロジェクトを右クリックして、発行をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image301.png"><img width="671" height="149" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb291.png" border="0" /></a>

7. Azure などに公開してアドレスを確認。

8. LINE 開発者ポータルで Webhook URL を更新。“/api/linebot” を末尾につけ忘れないように。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image92.png"><img width="977" height="196" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb90.png" border="0" /></a>

<span style="color: #0000ff"><strong><u>テスト</u></strong></span>

最後に動作確認です。

1. LINE クライアントから LINE 開発者ポータルにある QR コードを読み込んでボットを登録。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image302.png"><img width="336" height="161" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb292.png" border="0" /></a>

2. “hi” と送ってあとは期待通り動くか確認。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/IMG_1922.png"><img width="274" height="484" title="IMG_1922" alt="IMG_1922" src="https://msdnshared.blob.core.windows.net/media/2017/12/IMG_1922_thumb.png" border="0" /></a>

<span style="color: #0000ff"><strong><u>動作原理</u></strong></span>

基本的に LINE プラットフォームからきたデータを Bot Framework が分かるデータに書き換えて送り、返信はその逆をしているだけです。いくつか制限がありうまくできない場合もありますが、そこは都度調整が必要です。

中村 憲一郎]]></content:encoded>
    </item>
    <item>
      <title>ボット開発用 LINE クライアントシミュレーターで開発スピードを上げる</title>
      <link>https://docs.microsoft.com/archive/blogs/kenakamu/improve-line-bot-development-productivity-with-simulator-ja</link>
      <pubDate>Thu, 14 Dec 2017 15:51:07 GMT</pubDate>
      <dc:creator><![CDATA[Kenichiro Nakamura]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenakamu/?p=22225</guid>
      <description><![CDATA[個人的に、開発生産性の向上はとても重要です。よって Visual Studio を使うわけですが、LINE...]]></description>
      <content:encoded><![CDATA[個人的に、開発生産性の向上はとても重要です。よって Visual Studio を使うわけですが、LINE ボット開発における生産性のボトルネックは、テストやデバッグに実機が必要であるという点です。

<span style="color: #0000ff"><strong><u>Windows や MacOS 用の LINE クライアント</u></strong></span>

LINE アプリはモバイル版以外にもあるため、ボット開発ではそちらを使いますが、テンプレートのようなリッチな機能を試そうとすると、スマートフォンを使うように促されます。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image80.png"><img width="471" height="288" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb78.png" border="0" /></a>

<span style="color: #0000ff"><strong><u>シミュレーター</u></strong></span>

ではどうするか？ということでシミュレーターを作ってみました。これでより簡単にテストが可能です。

npm: <a href="https://www.npmjs.com/package/line-simulator" title="https://www.npmjs.com/package/line-simulator">https://www.npmjs.com/package/line-simulator</a>

GitHub: <a href="https://github.com/kenakamu/LINESimulator">https://github.com/kenakamu/LINESimulator</a>

試すには LINE のボットアプリが必要です。もし自前のアプリがない場合は、C# でよければ<a href="https://blogs.msdn.microsoft.com/kenakamu/2017/12/14/c-deline-bot-development-with-azure-function-for-cross-platform-ja/">前回の記事</a>をご覧ください。ここでは前回記事で作ったボットを使って説明します。尚、シミュレーター自体は開発言語に依存しません。

<span style="color: #0000ff"><strong><u>LINE ボットアプリ側の準備</u></strong></span>

シミュレーターを使うためには、LINE ボットアプリ側で少し準備が必要です。

1. run.cs ファイルを開く。

2. HttpTriggerFunction コンストラクタにある、LineMessagingClient のコンストラクタにシミュレーターのアドレスを第 2 引数として渡す。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image293.png"><img width="811" height="202" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb283.png" border="0" /></a>

3. 統合コンソールでアプリケーションルートに移動して、dotnet build を実行。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image294.png"><img width="575" height="196" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb284.png" border="0" /></a>

4. .\bin\Debug\netstandard2.0\ に移動して、func host start でファンクション起動。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image295.png"><img width="952" height="57" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb285.png" border="0" /></a>

5. 以下の画面が出たら起動完了。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image296.png"><img width="423" height="71" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb286.png" border="0" /></a>

6. F5 キーを押下して dotnet.exe にアタッチしデバッグを開始。

他の言語を利用している場合も基本同じような流れですが、詳細は <a href="https://github.com/kenakamu/LINESimulator/blob/master/README_ja.md#bot-アプリにシミュレーターの-url-を設定">GitHub の説明</a> を確認してください。

<span style="color: #0000ff"><strong><u>シミュレーターの利用</u></strong></span>

1. 以下のコマンドを実行してシミュレーターをインストールします。
<pre>npm install -g line-simulator</pre>
2. 以下のコマンドを実行してシミュレーターを起動します。
<pre>line-simulator</pre>
3. 以下のように接続画面が出るので、LINE 開発者ポータルより必要な情報を入力。Bot API Server Address にはボットアプリが待ち受けているローカルのアドレスを指定。ここでは <a href="https://localhost:7071/api/bot">https://localhost:7071/api/bot</a>。最後に Connect をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image297.png"><img width="704" height="360" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb287.png" border="0" /></a>

4. 無事接続できるとシミュレーターの画面が出るので、チャットウィンドウよりメッセージを送信。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/basic.gif"><img width="750" height="422" title="basic" alt="basic" src="https://msdnshared.blob.core.windows.net/media/2017/12/basic_thumb.gif" /></a>

5. 必要に応じてデバッグを実行。

その他の機能は <a href="https://github.com/kenakamu/LINESimulator/blob/master/README_ja.md#使い方">GitHub の説明</a> を確認してください。

<span style="color: #0000ff"><strong><u>コンセプト</u></strong></span>

ボット開発者の生産性を向上する事が最大の目的であるため、本当の LINE クライアントを完全には再現していません。また本来であれば面倒なフォローやアンフォロー、ビーコンの送信などが自由に行えます。最終的な動作確認は引き続き実機を使ってください。

<span style="color: #0000ff"><strong><u>まとめ</u></strong></span>

個人的には検証簡単になって幸せですが、グループの機能やリッチメニューなどまだまだ機能追加が必要です。興味がある方はコラボやフィードバックをお願いします。

中村 憲一郎]]></content:encoded>
    </item>
    <item>
      <title>Azure ファンクションと C# によるクロスプラットフォーム LINE Bot 開発</title>
      <link>https://docs.microsoft.com/archive/blogs/kenakamu/c-deline-bot-development-with-azure-function-for-cross-platform-ja</link>
      <pubDate>Thu, 14 Dec 2017 14:29:12 GMT</pubDate>
      <dc:creator><![CDATA[Kenichiro Nakamura]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenakamu/?p=22145</guid>
      <description><![CDATA[サーバーレスやボットなどのキーワードがバズってますが、台湾や韓国、日本などアジアでボットというと LINE を思い浮かべる方が多いのではないでしょうか。

この記事では LINE...]]></description>
      <content:encoded><![CDATA[サーバーレスやボットなどのキーワードがバズってますが、台湾や韓国、日本などアジアでボットというと LINE を思い浮かべる方が多いのではないでしょうか。

この記事では LINE ボットをマイクロソフトのサーバーレスサービスである Azure ファンクションで実装する方法を紹介します。また Azure ファンクションはクロスプラットフォームで開発できるので、Windows でも Mac でも Linux でも開発できるのが魅力です。

<span style="color: #0000ff"><strong><u>前提条件</u></strong></span>
<ul>
 	<li>好きな OS。この記事では Windows を使います。</li>
 	<li>LINE 開発者アカウント <a href="https://developers.line.me/ja/">https://developers.line.me/ja/</a></li>
 	<li>Azure サブスクリプション。無い場合は無料体験を <a href="https://azure.microsoft.com/en-us/free/">https://azure.microsoft.com/en-us/free/</a></li>
 	<li>Visual Studio Code <a href="https://code.visualstudio.com/">https://code.visualstudio.com/</a></li>
 	<li>dotnet core ライブラリ <a href="https://www.microsoft.com/net/learn/get-started/windows">https://www.microsoft.com/net/learn/get-started/windows</a> Mac や Linux 用はリンクから左にあるダウンロードを選択。</li>
 	<li>Node.js <a href="https://nodejs.org/en/">https://nodejs.org/en/</a></li>
 	<li>Git <a href="https://git-scm.com/">https://git-scm.com/</a> IDE と一緒にインストールされることが多いですが、必要な個別で。</li>
 	<li>ngrok <a href="https://ngrok.com/">https://ngrok.com/
</a></li>
</ul>
<span style="color: #0000ff"><u><strong>LINE のセットアップ</strong></u></span>

既に LINE ボットアプリ作ったことある場合はスキップしてください。

1. <a href="https://developers.line.me/ja/">https://developers.line.me/ja/</a> で LINE 開発者アカウントを作成。

2. “Messaging API(ボット)をはじめる” をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image248.png"><img width="864" height="422" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb238.png" border="0" /></a>

3. 既にプロバイダーがあれば選択、無ければプラスアイコンをクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image249.png"><img width="435" height="393" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb239.png" border="0" /></a>

4. プロバイダー作る場合は名前を入力して、[追加] をクリック。その後、次のページをクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image250.png"><img width="431" height="227" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb240.png" border="0" /></a>

5. アプリアイコンや名前、説明を指定。名前に ”LINE" と入れると失敗する模様。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image251.png"><img width="659" height="526" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb241.png" border="0" /></a>

6. プランは“Developer Trial” を選択。業種は任意で選択し、メールアドレスを入力して ”確認” をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image252.png"><img width="568" height="738" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb242.png" border="0" /></a>

7. 利用規約に (自己責任で) 同意して、”作成” をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image253.png"><img width="554" height="242" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb243.png" border="0" /></a>

8. 画面が切り替わるので、“設定が完了していません” をクリックします。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image254.png"><img width="492" height="600" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb244.png" border="0" /></a>

9. 構成ページに移動するので、メッセージ送受信設定を確認。アクセストークンで ”再発行” をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image255.png"><img width="818" height="427" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb245.png" border="0" /></a>

10. “再発行” をクリック。0 時間後を選択すると失効しない。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image256.png"><img width="694" height="400" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb246.png" border="0" /></a>

11. “Webhook 送信” と “Bot のグループトーク参加” を有効に設定。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image257.png"><img width="1020" height="328" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb247.png" border="0" /></a>

12. “LINE@機能の利用” で “自動応答メッセージ” と “友だち追加時のあいさつ” を利用しないに設定します。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image258.png"><img width="1042" height="352" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb248.png" border="0" /></a>

13. 最後に一番下にある QR コードを LINE アプリケーションで読み取ってボットを追加します。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/IMG_1955.png"><img width="326" height="576" title="IMG_1955" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="IMG_1955" src="https://msdnshared.blob.core.windows.net/media/2017/12/IMG_1955_thumb.png" border="0" /></a>

まずはここまで。構成画面は開いておいてください。

<span style="color: #0000ff"><strong><u>Azure の準備</u></strong></span>

1. Azure ポータルにログイン <a href="https://portal.azure.com">https://portal.azure.com</a>

2. 作成するリソースをまとめるため、リソースグループを作ります。メニューより ”リソースグループ” を選択。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image259.png"><img width="205" height="335" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb249.png" border="0" /></a>

3. ”追加” をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image260.png"><img width="203" height="80" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb250.png" border="0" /></a>

4. 名前とリージョンを選択して、作成。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image261.png"><img width="344" height="258" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb251.png" border="0" /></a>

5. 作成が完了したら、リストを更新して作成したリソースグループを選択。

6. ”追加” をクリックしてモジュールを追加。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image262.png"><img width="442" height="166" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb252.png" border="0" /></a>

7. “function” で検索して、 Function App を選択。右側にブレードが開くので、”作成” をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image263.png"><img width="356" height="277" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb253.png" border="0" /></a>

8. 必須項目を埋めて作成。またストレージも自動作成を選択。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image264.png"><img width="390" height="717" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb254.png" border="0" /></a>

9. 作成が完了したらリソースグループの画面から追加されたリソースを確認。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image265.png"><img width="515" height="101" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb255.png" border="0" /></a>

Azure の準備はこれで一旦終了。画面は開いておいてください。

<span style="color: #0000ff"><strong><u>Azure Functions アプリのランタイムインストール</u></strong></span>

Azure ファンクションのランタイムとツールをインストールします。

1. コマンドプロンプトかターミナルを開く。

2. 以下のコマンドを実行してツールをインストール。
<pre>npm i -g azure-functions-core-tools@core</pre>
Mac の場合は sudo で実行。
<pre>sudo npm i -g azure-functions-core-tools@core --unsafe-perm</pre>
3. func コマンドを実行してインストールできているか確認。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image266.png"><span style="color: #0000ff"><strong><img width="607" height="464" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb256.png" border="0" /></strong></span></a>

<span style="color: #0000ff"><strong><u>Bot アプリケーションのコード</u></strong></span>

Azure Function 用のテンプレートは yeoman を使って作成できます。まず yeoman とジェネレーターをインストールします。

1. コマンドプロンプトやターミナルで以下のコマンドを実行して yeoman をインストール

npm i -g yeoman

2. 以下のコマンドで LINE ボット用のジェネレーターをインストール

npm i -g generator-line-bot

3. フォルダを作成。作成したフォルダに移動。

4. 以下のコマンドで C# Azure ファンクションのプロジェクトを作成。

yo line-bot mybot –csharp

5. Channel Secret と Channel Access Token を聞かれるので、LINE 開発者ポータルより値をコピーして貼り付け。
※通常このキーは大事なものですので、外部には公開しないでください。ここで表示したものはブログ公開時には既に変更済です。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image267.png"><img width="552" height="95" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb257.png" border="0" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image268.png"><img width="713" height="109" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb258.png" border="0" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image269.png"><img width="877" height="212" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb259.png" border="0" /></a>

6. mybot フォルダに移動して、code . でフォルダを Visual Studio Code で開く。

7. Azure ポータルに戻り、ストレージアカウントを開く。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image270.png"><img width="813" height="111" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb260.png" border="0" /></a>

8. ”アクセスキー” を選択。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image271.png"><img width="266" height="390" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb261.png" border="0" /></a>

9. ”接続文字列” のいずれかをコピー。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image272.png"><img width="1119" height="227" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb262.png" border="0" /></a>

10. local.settings.json の“AzureWebJobsStorage” に値を張り付け。LINE の設定は自動で入っていることを確認。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image273.png"><img width="528" height="245" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb263.png" border="0" /></a>

11. “表示” メニューより “統合ターミナル” を起動。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image274.png"><img width="342" height="330" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb264.png" border="0" /></a>

12. ‘'dotnet restore” コマンドで依存関係をダウンロード。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image275.png"><img width="778" height="282" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb265.png" border="0" /></a>

13. “dotnet build” でコンパイルを実行。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image276.png"><img width="738" height="354" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb266.png" border="0" /></a>

14. 全てのロジックは LineBotApp.cs  にあるので必要に応じて編集。

<span style="color: #0000ff"><strong><u>ローカルでのテスト</u></strong></span>

まずローカルで検証します。そのためには ngrok で LINE プラットフォームからのリクエストをローカルにフォワード出来るようにします。

1. コマンドプロンプトやターミナルを開いて、nrgok のインストールパスに移動。PATH を設定済みの場合はスキップ。

2. 以下のコマンドを実行してローカルポート 7071 を指定。ポート 7071 はファンクションアプリの既定ポート
<pre>ngrok.exe http --host-header=localhost:7071 7071</pre>
3. 結果の画面で ngrok サーバーのアドレスを確認。以下の場合は “0677b5d8.ngrok.io”

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image277.png"><img width="905" height="298" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb267.png" border="0" /></a>

4. LINE 開発者ポータルに戻って ”Webhook URL" を更新 “/api/linebot” を最後につける。このアドレスでアプリが待ち受け。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image278.png"><img width="876" height="165" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb268.png" border="0" /></a>

5. 準備が整ったので、Visual Studio Code の統合ターミナルで /bin/Debug/netstandard2.0 に移動。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image279.png"><img width="830" height="53" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb269.png" border="0" /></a>

6. 以下のコマンドでアプリを実行。
<pre>func host start</pre>
7. 結果として以下のように緑で待ち受けアドレスが出ていれば起動は完了。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image280.png"><img width="573" height="96" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb270.png" border="0" /></a>

8. コードにアタッチするため、F5 キーを押下。リストより dotnet.exe を選択。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image281.png"><img width="484" height="119" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb271.png" border="0" /></a>

これで準備は完了です。

<span style="color: #0000ff"><strong><u>デバッグ実行</u></strong></span>

1. LINE アプリケーションより ”こんにちは” と送信。返信が来ることを確認。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/IMG_1956.png"><img width="321" height="568" title="IMG_1956" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="IMG_1956" src="https://msdnshared.blob.core.windows.net/media/2017/12/IMG_1956_thumb.png" border="0" /></a>

2. 次に任意の場所にブレークポイントを設定。ここでは run.cs の Run メソッドに設定。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image66.png"><img width="558" height="214" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb64.png" border="0" /></a>

3. LINE クライアントよりメッセージを送ってデバッグできることを確認。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image67.png"><img width="559" height="224" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb65.png" border="0" /></a>

<span style="color: #0000ff"><strong><u>アプリケーションの発行</u></strong></span>

最後に開発したアプリケーションを Azure に公開します。

1. Visual Studio Code でデバッグツールバーより切断ボタンをクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image282.png"><img width="345" height="98" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb272.png" border="0" /></a>

2. 統合コンソールよりファンクションアプリの実行画面を選択して、Ctrl+C を押下してファンクションアプリを停止。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image283.png"><img width="777" height="370" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb273.png" border="0" /></a>

3. 以下のコマンドを実行して Azure にログイン。
<pre>func azure login</pre>
4. 指示に従ってログインを完了。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image284.png"><img width="972" height="85" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb274.png" border="0" /></a>

5. 指定された URL を開いてコードを張り付け、”続行” をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image285.png"><img width="324" height="373" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb275.png" border="0" /></a>

6. ログインが完了したら以下コマンドでアプリを発行。publish の後にはファンクションアプリの名前を指定。
<pre>func azure functionapp publish lineserverlessbotja -i -y</pre>
7. 発行が完了したら Azure ポータルに移動して、ファンクションアプリを開く。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image286.png"><img width="704" height="138" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb276.png" border="0" /></a>

8. “アプリケーション設定” をクリック。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image287.png"><img width="539" height="429" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb277.png" border="0" /></a>

9. LINE のチャネルトークンなどの変数が存在することを確認。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image288.png"><img width="604" height="94" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb278.png" border="0" /></a>

10. 画面上部の ”概要” より “Function App の設定” を開き、”ランタイム バージョン” で “beta” を選択。これで v2 の機能が利用可能。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image289.png"><img width="300" height="104" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb279.png" border="0" /></a>

11. LINEBOT を左のペインから選択。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image290.png"><img width="272" height="311" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb280.png" border="0" /></a>

11. 右上にある “関数のURL の取得” をクリックして URL をコピー

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image291.png"><img width="215" height="55" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb281.png" border="0" /></a>

12. LINE 開発者ポータルより Webhook URL を更新。

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image292.png"><img width="778" height="143" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb282.png" border="0" /></a>

公開はこれで完了です。LINE クライアントより動作を確認。

<span style="color: #0000ff"><strong><u>まとめ</u></strong></span>

少し手順が長くなりましたが上手くいったでしょうか？次回は LINE ボット開発に使えるシミュレーターについて紹介します。

中村 憲一郎]]></content:encoded>
    </item>
    <item>
      <title>Improve LINE Bot development productivity with Visual Studio Code Extension</title>
      <link>https://docs.microsoft.com/archive/blogs/kenakamu/improve-line-bot-development-productivity-with-visual-studio-code-extension</link>
      <pubDate>Tue, 05 Dec 2017 02:56:21 GMT</pubDate>
      <dc:creator><![CDATA[Kenichiro Nakamura]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenakamu/?p=21445</guid>
      <description><![CDATA[In my previous article, I explained about LINE simulator. In this article, I explain VSCode...]]></description>
      <content:encoded><![CDATA[In my <a href="https://blogs.msdn.microsoft.com/kenakamu/2017/12/04/improve-line-bot-development-productivity-with-simulator/">previous article</a>, I explained about LINE simulator. In this article, I explain VSCode extension to improve LINE Bot development.

<span style="color: #0000ff"><strong><u>LINE Bot Development Utilities</u></strong></span>

This is the VSCode extension. See the link for detail explanation.

Visual Studio Marketplace : <a href="https://marketplace.visualstudio.com/items?itemName=kenakamu.linebotutilities" title="https://marketplace.visualstudio.com/items?itemName=kenakamu.linebotutilities">https://marketplace.visualstudio.com/items?itemName=kenakamu.linebotutilities</a>

GitHub: <a href="https://github.com/kenakamu/LINEBotDeveloperUtil">https://github.com/kenakamu/LINEBotDeveloperUtil</a>

<strong><u>How to setup</u></strong>

1. Open Visual Studio Code.

2. Click Extension menu on the left.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image97.png"><img width="65" height="97" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb95.png" border="0" /></a>

3. Search for “LINE Bot Development Utilities” and click “Install”.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image98.png"><img width="326" height="211" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb96.png" border="0" /></a>

4. Once installed, click “Reload”.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image99.png"><img width="850" height="906" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb97.png" border="0" /></a>

5. That’s all.

<span style="color: #0000ff"><strong><u>How to use</u></strong></span>
<h4><span style="font-weight: bold"><u>JSON code snippets</u></span></h4>
<ol>
 	<li>Open any .json file and start typing "text".</li>
 	<li>Select snippet candidate for "LINE Text Message".</li>
 	<li>You see the JSON object for Text Message will be auto generate.
<img alt="snipppet" src="https://raw.githubusercontent.com/kenakamu/LINEBotDeveloperUtil/master/readme_images/snippet.gif" /></li>
</ol>
<h4><span style="font-weight: bold"><u>JSON to UI converter</u></span></h4>
<ol>
 	<li>Open any .json file, and select JSON object.</li>
 	<li>Click preview icon on the right top.</li>
 	<li>You see the parsed UI results. You can change the JSON data which update the UI realtime.
<img alt="ui1" src="https://raw.githubusercontent.com/kenakamu/LINEBotDeveloperUtil/master/readme_images/UI1.gif" /></li>
 	<li>For nested JSON like buttons, you need to explicitly select JSON object from first '{' to last '}'.
<img alt="ui2" src="https://raw.githubusercontent.com/kenakamu/LINEBotDeveloperUtil/master/readme_images/UI2.gif" /></li>
</ol>
<h4><span style="font-weight: bold"><u>Supported Snippets.</u></span></h4>
<ul>
 	<li>Text Message</li>
 	<li>Sticker Message (Only Id)</li>
 	<li>Image Message</li>
 	<li>Video Message</li>
 	<li>Audio Message</li>
 	<li>Imagemap Message</li>
 	<li>Confirm Template message</li>
 	<li>Buttons Template message</li>
 	<li>Carousel Template message</li>
 	<li>Image Carousel Template message</li>
</ul>
&nbsp;

Please let me know if this helps.

Ken]]></content:encoded>
    </item>
    <item>
      <title>Develop intelligent LINE bot with Microsoft Bot Framework</title>
      <link>https://docs.microsoft.com/archive/blogs/kenakamu/develop-intelligent-line-bot-with-microsoft-bot-framework</link>
      <pubDate>Mon, 04 Dec 2017 17:08:05 GMT</pubDate>
      <dc:creator><![CDATA[Kenichiro Nakamura]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenakamu/?p=21397</guid>
      <description><![CDATA[Microsoft offers great bot development framework (https://dev.botframework.com) for bot developers....]]></description>
      <content:encoded><![CDATA[Microsoft offers great bot development framework (<a href="https://dev.botframework.com">https://dev.botframework.com</a>) for bot developers. The key features are:
<ul>
 	<li>Write once, publish to multiple chat platform (skype, facebook, skype for business, slack, sms, email, etc.)</li>
 	<li>Provide dialog support so that developers easily implement conversation flow without managing the conversation.</li>
 	<li>C#/Node.js SDK</li>
 	<li>IDE and simulator support</li>
 	<li>Native integration with Microsoft Cognitive services.</li>
</ul>
The best part, for me at least, is the dialog support. If the bot only does single Q and A, then it is not much different from search experience. But with dialog support, bot remembers previous conversations and use multiple input to execute business logic to achieve something greater.

The issue? Microsoft Bot Framework do not support LINE platform atm.

<span style="color: #0000ff"><strong><u>Solution</u></strong></span>

Yes, there is a solution. Microsoft Bot Framework have channel called “Direct Line”, which let developer connect whatever they want. So only we need is a connector which uses it. We implement the connector by using C# and it is super easy to set up.

<span style="color: #0000ff"><strong><u>Who want to use this?</u></strong></span>

There are two types of audience for this solution.
<ul>
 	<li>You are bot developer using Microsoft Bot Framework who want to connect to LINE.</li>
 	<li>You are LINE bot developer who wants to utilize Microsoft Bot Framework</li>
</ul>
<span style="color: #0000ff"><strong><u>Prerequisites</u></strong></span>
<ul>
 	<li>Microsoft Bot Framework bot application. I assume you already have one anyway. If you don’t have it at the moment, you can grab samples from <a href="https://github.com/Microsoft/BotBuilder-Samples">GitHub</a>.</li>
 	<li>Visual Studio 2017</li>
 	<li>Azure Subscription</li>
 	<li>LINE developer account and one bot setup</li>
</ul>
For LINE developer account and bot setup, please refer to Setup LINE section of <a href="https://blogs.msdn.microsoft.com/kenakamu/2017/12/02/c-line-bot-development-with-azure-function-for-cross-platform/">my previous article</a>

<span style="color: #0000ff"><strong><u>Setup</u></strong></span>

<strong><u>Bot Framework</u></strong>

Let’s start from Bot Framework side. I am using sample Pizza bot application for my test here.

1. Go to <a href="https://dev.botframework.com">https://dev.botframework.com</a> and select your registered bot and select “Channels”.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image81.png"><img width="704" height="449" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb79.png" border="0" /></a>

2. Click “Direct Line” in “Add a channel”.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image82.png"><img width="704" height="242" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb80.png" border="0" /></a>

3. Copy one of Secret Keys and click “Done”.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image83.png"><img width="537" height="484" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb81.png" border="0" /></a>

<strong><u>Azure Storage</u></strong>

To track several items, we use Azure Storage.

1. Go to Azure Portal. <a href="https://portal.azure.com">https://portal.azure.com</a>

2. Create a storage account. I created one in the same resource as my bot application lives.

3. Move to the storage account you created, and click “Access keys”.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image84.png"><img width="254" height="375" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb82.png" border="0" /></a>

4. Copy one of the CONNECTION STRING.

&nbsp;

<strong><u>LINE bot</u></strong>

1. Go to LINE Developer portal (<a href="https://developers.line.me">https://developers.line.me</a>) and select your LINE bot.

2. Copy Channel Secret.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image85.png"><img width="580" height="100" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb83.png" border="0" /></a>

3. Issue and copy channel access token.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image86.png"><img width="965" height="132" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb84.png" border="0" /></a>

4. Keep the window open as we will update webhook URL later.

<strong><u>Connector</u></strong>

Next, setup connector.

1. Open Visual Studio 2017, go to tools | Extensions and Updates.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image87.png"><img width="430" height="104" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb85.png" border="0" /></a>

2. Search “LINE Bot C# Template from Online and install it. Restart the VS if necessary.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image88.png"><img width="535" height="134" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb86.png" border="0" /></a>

3. From project, select “LineWithBotFrameworkApplication” template and create the project.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image89.png"><img width="644" height="171" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb87.png" border="0" /></a>

4. Open web.config and fill parameters.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image90.png"><img width="711" height="202" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb88.png" border="0" /></a>

5 For NuGet packages, update as you need.

6. Right click the project and click “Publish”.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image91.png"><img width="417" height="239" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb89.png" border="0" /></a>

7. Publish to Azure Web Apps, and copy the URL.

8. Go back to LINE developer portal and update Webhook URL. Do not forget to add “/api/linebot” at the end.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image92.png"><img width="977" height="196" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb90.png" border="0" /></a>

<span style="color: #0000ff"><strong><u>Test the bot</u></strong></span>

Everything up and running, so let’s test.

1. From your LINE client, add the bot by scanning QR code in LINE developer portal page.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image93.png"><img width="328" height="231" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb91.png" border="0" /></a>

2. send “hi” and then follow it. Oh I just realized that I am not using pizza bot sample but using sandwich sample. Anyway it doesn’t matter much here.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/IMG_1922.png"><img width="274" height="484" title="IMG_1922" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="IMG_1922" src="https://msdnshared.blob.core.windows.net/media/2017/12/IMG_1922_thumb.png" border="0" /></a>

<span style="color: #0000ff"><strong><u>How this works</u></strong></span>

It’s very simple. The connector receives the message from LINE Platform, and redirect it to Bot Framework via direct line. Then it receives the results back from Bot Framework, then redirect to LINE Platform. It just changes the format in between.

Anyway hope you enjoy hooking your Bot Framework application to LINE <img class="wlEmoticon wlEmoticon-smile" style="border-style: none" alt="Smile" src="https://msdnshared.blob.core.windows.net/media/2017/12/wlEmoticon-smile1.png" />

Ken]]></content:encoded>
    </item>
    <item>
      <title>Improve LINE Bot development productivity with Simulator</title>
      <link>https://docs.microsoft.com/archive/blogs/kenakamu/improve-line-bot-development-productivity-with-simulator</link>
      <pubDate>Mon, 04 Dec 2017 01:06:36 GMT</pubDate>
      <dc:creator><![CDATA[Kenichiro Nakamura]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenakamu/?p=21175</guid>
      <description><![CDATA[As a developer, I seriously think about productivity. That’s why I use Visual Studio. (I know you...]]></description>
      <content:encoded><![CDATA[As a developer, I seriously think about productivity. That’s why I use Visual Studio. (I know you have your preference and I am not in a position to deny it.) But when I develop LINE bot applications, I cannot stay in PC forever as I need to use physical mobile phone to test my bot.

<span style="color: #0000ff"><strong><u>LINE client on Windows and MacOS</u></strong></span>

You may say there is a native LINE client for Windows or MacOS. Yes and no. The native app is good enough to test text message to bot, but when it comes to rich messages, such as buttons, it won’t work like this.

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/image80.png"><img width="471" height="288" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2017/12/image_thumb78.png" border="0" /></a>

<span style="color: #0000ff"><strong><u>LINE client simulator for bot developer</u></strong></span><span style="color: #0000ff">
</span>So what shall I do? screen mirroring is a good way to solve this, but to simplify the process, I created LINE client simulator for bot developers.

GitHub: <a href="https://github.com/kenakamu/LINESimulator" title="https://github.com/kenakamu/LINESimulator">https://github.com/kenakamu/LINESimulator</a>

For how to use it, please read the README there.

<span style="color: #0000ff"><strong><u>Concept</u></strong></span>

The concept is to enable developer (me) to send text, file, location, sticker, system messages such as follow/unfollow or beacon to my bot application easily, and see the result like mobile device, including rich messages.

To fully works as simulator, your bot application also needs to talk back to the simulator, so you have to pass the URL to your bot application.

<span style="color: #0000ff"><strong><u>What’s next?</u></strong></span>

It has basic features, which you can try to see by your own eyes. However we still need more improvement so that we can test all the features without using physical phone.

<span style="color: #0000ff"><strong><u>Any additional benefit?</u></strong></span>

Yes. As this is simply a web application, now it is easier to write UI test code by using any automation technologies.

<span style="color: #0000ff"><strong><u>Demo Image</u></strong></span>

<a href="https://msdnshared.blob.core.windows.net/media/2017/12/basic.gif"><img width="750" height="422" title="basic" alt="basic" src="https://msdnshared.blob.core.windows.net/media/2017/12/basic_thumb.gif" /></a>

Ken]]></content:encoded>
    </item>
  </channel>
</rss>