本サイトからスピンオフした姉妹サイトです。Botが手軽に作成できる。その開発方法を一通り説明する。Functionsを利用して、サーバーレスなBotを開発してみよう。APIの登録方法から、Node.jsを使用してLINEのBotアプリケーションを作成する方法まで、サーバーレスなBotの開発方法についてまとめる。今(こん)日(にち)、メールに変わるコミュニケーション手段として、さまざまなメッセージングアプリケーションが登場している。FacebookメッセンジャーやSkypeやSlackなど多くのアプリケーションがリリースされているが、LINEも多くのユーザーから利用されているメッセージングアプリケーションである。API」として提供が開始された。APIには大きく2つの機能があり。APIと連携して、画像のURLを渡すと年齢を返すアプリケーションを作成する。図1はそのアプリケーション構成のイメージである。APIを利用してユーザーに送信する仕組みである。完成までの大まかな流れは以下のようになる。APIの接続(5)Botアプリケーションの実行それではさっそく開発内容を説明していこう。API]をクリックする(図2)。その後は、図3~図7の手順に沿って登録を進めてほしい。API]をクリックする。Trialを始める]ボタンをクリックする。▼この時点でログインしていない場合は、LINEアカウントにログインが求められるのでログインを行う。ログイン後は、会社がすでに登録されている場合は、図4の下の▼までスキップする。会社が未登録の場合は会社情報の入力が求められるので(※図4に示すとおり、会社といっても「法人」か「個人」かを選択できる)、適当な情報を入力して会社を作成・登録する(本稿ではAzureサンプル会社という法人を作成・登録した。ちなみにいったん「個人」で作成した後で、LINEアカウントに「法人」を追加することも可能である)。その次に表示されるページで、[サービスを利用開始]ボタンをクリックする。Trial]アカウント(以下、Developerアカウント)の作成画面になるので(図5)、[アカウント名]と[業種]を設定する(本稿では「FaceBot」というアカウント名を設定した)。Trialの作成[確認する]ボタンをクリックすると確認ページが表示され、そこで問題なければ[申し込む]ボタンをクリックする。その次のページで[LINE@MANAGER]ボタンをクリックする。APIの有効化[LINE@MANAGER]ページの[アカウント設定]-[Bot設定]をクリックすると、この[Bot設定]の画面が表示されるので、[APIを利用する]ボタンをクリックして、利用登録を完了させる。Bot設定画面[Bot設定]画面がこのような表示に変わるので、以下の本文の内容を参考にBot設定を行う。Bot設定のキャプション正しく設定したことを確認して、[保存]ボタンをクリックする。Tokenを取得する。Developersで設定する]のリンクをクリックする。利用許諾が求められるので、内容を確認して(問題なければ)[AGREE]ボタンをクリックして同意する。Developersの基本情報画面が表示される。Token]を取得する。Functionの設定で使用するので控えておく。APIを利用するための登録と設定手順である。APIに関する設定を行う。Servicesを利用するための設定方法を解説する。ServicesとしてAzureのサービスの中に取り込まれた。ServicesではさまざまなAPIが公開されており、現時点では5つのカテゴリ分けで、以下のようなAPIが公開されている。APIでは、画像を解析して顔の判定や人物の識別を行うことができる。APIを利用するには、APIエンドポイントを作成する必要があるため、以下ではその作成手順を解説する。APIのアカウント作成方法まずはAzureポータルへログインする。Azureアカウントの新規作成時には、Microsoftアカウントの作成や、電話による本人確認、クレジットカードによる本人確認などが必要だったりするが、流れに沿って進めれば難しい点はないので、本稿では説明を割愛する。APIs」と入力する。そこから先は、図11~図12の手順で進めてほしい。(プレビュー)]という項目をクリックする。(プレビュー)]ブレードの[作成]ボタンをクリックする。account(アカウント)を作成する画面に、以下の本文にある箇条書きのとおりに入力を行う。accountの作成を完了させる。APIのKEY(キー)の参照方法を以下に示す。accountの項目を選択すると、図13のような概要ページが表示される。1]の値を控えておく。1]の値を控えておく。APIを動作させるには、冒頭でも述べたとおり、Webサーバーを用意する必要がある。Functionsで初めての開発入門」を参照していただきたい。HttpTriggerの関数を作成まず初めに、LINEからきたメッセージを処理する関数を作成する。Appを作成したうえで、図14を参考に「JavaScript」言語の「HttpTrigger」の関数を作成する。以下の手順で関数を作成する。1[新しい関数]をクリックする。2[言語]はJavaScriptを、[シナリオ]はコアを選択する。これにより、テンプレートが絞り込まれる。3テンプレート一覧の中からHttpTrigger-JavaScriptを選択する。4[関数名の指定]は、適当な名前を入力する。今回は例としてHttpTriggerJS1と入力した。[承認レベル]は、Functionを選択されていることを確認する。5[作成]ボタンをクリックする。作成されたHttpTrigger関数(本稿の例ではHttpTriggerJS1)の[開発]タブを開いてindex.jsファイルに、リスト1のコードを入力して、[保存]ボタンをクリックする。コードの内容は、LINEからHTTP送信された内容をoutputQueueItemというキューに設定する処理である。LINEからHTTP送信された内容(body)をキュー(outputQueueItem)に登録するコード次に、右上にある[ファイルの表示]からfunction.jsonファイルを開き、リスト2の内容(=キューへのバインドを追記)を図15のように入力して、[保存]ボタンをクリックする。function.jsonファイルの内容を編集しているところ番号の順に操作する。キュー(outputQueueItem)へのバインド設定を追加する(太字部分)キュー名(queueName)として指定しているjs-queue-itemsは、次節で作成するQueueTrigger関数で指定するものと一致させる必要がある。ストレージアカウント接続(connection)として指定しているAzureWebJobsDashboardもQueueTrigger関数作成時に指定したものと一致させること。次に、キューに設定された内容を処理する関数を作成する。APIを利用してユーザーに返す処理を記述する。以下の手順で関数を作成する。1[新しい関数]をクリックする。2[言語]はJavaScriptを、[シナリオ]はコアを選択する。これによりテンプレートが絞り込まれる。3テンプレート一覧の中からQueueTrigger-JavaScriptを選択する。4[関数名の指定]は、適当な名前を入力する。今回は例としてQueueTriggerJS1と入力した。[キュー名]は、入力に使うキューの名前を入力する。今回は例として、初期値のjs-queue-itemsと入力した(前述のリスト2の値はこれに一致させる)。アカウント接続]は、キューのストレージアカウントを選択する。今回は例として、初期値のAzureWebJobsDashboardが選択されていることを確認する(前述のリスト2の値はこれに一致させる)。5[作成]ボタンをクリックする。作成されたQueueTrigger関数(本稿の例ではQueueTriggerJS1)の[開発]タブを開いてindex.jsファイルに、リスト3のコードを入力して、[保存]ボタンをクリックする。APIに渡してその実行結果を、それ以外であれば「画像のURLを投稿してください」という旨のメッセージを、LINEに送信する処理である。APIの解析に失敗しました。画像のURLを投稿してください。'画像が投稿されました。画像のURLを投稿してください。'スタンプが投稿されました。画像のURLを投稿してください。画像のURLを投稿してください。APIに渡して、その実行結果をLINEに送信する処理process.env.~というコードは、プロセスの環境変数として設定した値を取得していることを意味する。COGNITIVE_KEYとLINE_CHANNEL_ACCESS_TOKENという環境変数を取得しているが、これらの設定方法は次節で説明している。Appの環境変数に設定する。その手順を図17~図18に示す。Appの設定]をクリック。2[アプリケーション設定の構成]をクリックする。APIの認証情報を設定する。具体的には以下の本文を参考にしてほしい。2最後に[保存]ボタンをクリックする。APIのKEY情報(表3)を設定する。APIのKEY情報これらのキー(=環境変数)は、リスト3のコードで使われている。Appの作成と設定は完了である。Appが実行されない。Appのエンドポイントを指定する必要がある。その手順を図19~図20に示す。App関数のURLをコピーHttpTriggerJS1関数のindex.jsファイルに割り当てられている[関数のURL]をコピーする。コピーする際には、矢印で指し示しているボタンをクリックしてほしい。これによりURLがクリップボードにコピーされる。developersのページを開いて、以下の手順を実行する。information]をクリック。2[EDIT]ボタンをクリックして、編集状態にする。App関数のURL」を設定して[SAVE]ボタンをクリックする。以上で本当に全ての開発作業が完了だ。Code]に表示されたQRコードを、LINEの[友だち追加]にある[QRコードリーダー]で認識して、ここまでに作成したBotを友達として追加する。LINEの[トーク]を開いて、画像のURLを投稿すると、解析結果が表示されるはずだ。今回は図21の男性の画像(URL:https:///re.buildinsider.net/pr-assets/microsoft/azure/solution02/man-face.jpg)を使って確認してみよう。Botに使用するサンプル画像メガネをかけた男性の画像を今回は使用する。図22が、実際の実行結果である。APIの解析結果を返してくる。返却された解析結果はインデントがなくて読みづらいので、リスト4にきれいに整形した内容を示しておこう。APIが「35歳の男性」という結果を返していることが分かる。それ以外にも、笑顔(smile)やメガネ(glasses)の状態なども出力されているので、(英語ではあるが)ぜひ写真と見比べながら、どんな顔判定がなされているのかを確認してみてほしい。APIを利用して、LINEのBotアプリケーションを作成する方法を解説した。今回の例ではJavaScriptで記述したが、C♯などさまざまな言語で開発することが可能である。Servicesを利用することで、機械学習を用いたアプリケーションを個人でも容易に作成することができるので、これを機に挑戦していただきたい。※以下では、本稿の前後を合わせて5回分(第1回~第5回)のみ表示しています。INDEX]を参照してください。Functionsを使ったサーバーレス開発の基礎をコンパクトに解説。トリガーや入力/出力のバインディングを作成してみよう。Botが手軽に作成できる。その開発方法を一通り説明する。App(関数アプリ)の作成、Azureへのデプロイと実行、さらに外部ライブラリや自作ライブラリの活用まで、基本的な開発方法を解説する。Functions」をスケジュール実行する方法(cronジョブ構文)[PR]バッチジョブなどでスケジュール実行したいというニーズは多いだろう。サーバーレスでFunctionをスケジュール実行する方法を解説。cron構文によるスケジュールの指定方法も説明する。設計時に使えるAzure/AWSサービス・アイコン集とダウンロード方法[PR]クラウド上のシステムやサービスを設計する際には、視覚的に分かりやすいアイコンを使おう。アイコンセットのダウンロード方法を示し、各アイコンを用いてAzure/AWSサービスの対応一覧表をまとめる。機械学習エンジニアを目指す人~初中級者のための技術情報サイトです。2023最適なビューへの切り替えを推奨します:スマートフォン用表示に。