LoginSignup
15
9

More than 1 year has passed since last update.

Azure FunctionsでLINE Bot作成

Last updated at Posted at 2021-09-05

はじめに

本記事は、Microsoft AzureのAzure Bot Serviceを利用した、画像認識の方法を記載しています。
※2021年9月時点での手順です(クラウドサービスのため変更されている可能性あり)

前提

  • LINEアカウントを持っていること
    • 通常のLINEを利用できるもの
    • もしLINEを使っていない場合は、アカウントの作成が必要
  • Azureアカウントを持っていること
    • もしアカウントを持っていない場合は、こちらからアカウント登録

準備手順

LINE Messaging API

LINE Developersにログイン

こちらからLINE Developersサイトを開きます。
LINE Developersサイトの右上の「ログイン」ボタン(下記画像の赤枠部分)をクリックします。
LINEDevelopers.png
「ログイン方法選択」画面に遷移します。
そして、「LINEアカウントでログイン」ボタン(下記画像の赤枠部分)をクリックします。
LINEDevelopers.png
LINEアカウントで設定しているメールアドレスとパスワードを入力するか、もしくはQRコードログインを使用してLINEアカウントでログインしてください。
LINEDevelopersログイン.png

LINE Messaging API channelの作成

Providersの横の「Create」ボタン(下記画像の赤枠部分)をクリックします。
Provider.png
「Provider name」を入力し、「Create」ボタン(下記画像の赤枠部分)をクリックします。
CreateProvider.png
「Channels」タブを選択します。
Channels.png
「Create a Messaging API channel」(下記画像の赤枠部分)を選択します。
CreateMessagingAPIChannel.png
下記画像の「Create a channel」ページに遷移し、次の必須項目を入力する。

  • Channel name:チャンネル名
  • Channel description:チャンネル概要
  • Category:LINE Botの利用種類
  • Subcategory:Categoryを細分化したもの

CreateChannel.png
2つの利用規約を確認し、同意してチェックします。
そして、「Create」ボタン(下記画像の赤枠部分)をクリックします。
ChannelCreate.png
内容を確認し「OK」ボタン(下記画像の赤枠部分)をクリックします。
CreateChannel.png
内容を確認し「同意する」ボタン(下記画像の赤枠部分)をクリックします。
CreateChannelAgree.png
「Basic setting」タブを選択し、次の項目を設定します。

  • Channel Secret:再発行(後に使用するため、メモ帳にコピー)

BasicSetting.png
「Messaging API setting」タブを選択し、次の項目を設定します。

  • QRコード:スマホで読み込んで友達登録
  • Webhook URL:後ほどAzure Functionsで取得するURL
  • Use webhook:オン
  • Auto-reply messages:応答メッセージをオフ
  • アクセストークン:後に使用するため、メモ帳にコピー MessagingAPISetting.png

Azure Functions

Azure Portalにログイン

こちらから「Azure アカウントの管理」ページ(下記画像)を開きます。
左の「ポータルに移動」ボタン(下記画像の赤枠部分)をクリックします。
account.png
アカウント情報
portal.png

Azure Functionsの作成

上の検索窓から「関数アプリ」と検索し、「サービス」欄から「関数アプリ」を選択します。
search.png
「関数アプリ」画面(下記画像)が開かれます。
上の「作成」ボタン(下記画像の赤枠部分)をクリックします。
AppliedAIService.png

以下の項目を入力して、「確認および作成」ボタン(下記画像の赤枠部分)をクリックします。

  • サブスクリプション:任意(今回は、「Azure for Students」)
  • リソースグループ:任意(今回は、「botservicetest」)
  • 関数アプリ名::任意(今回は、「botservicetest-1」)
  • 公開:任意(今回は、「コード」)
  • ランタイムスタック:任意(今回は、「Node.js」)
  • バージョン:任意(今回は、「14 LTS」)
  • 地域:任意(今回は、「Japan East」)
    CreateAzureFunctions1.png
    「作成」ボタン(下記画像の赤枠部分)をクリックします。
    CreateAzureFunctions2.png
    デプロイが完了するのを待ちます。
    完了したら、「リソースに移動」ボタン(下記画像の赤枠部分)をクリックします。
    deploy.png
    左の「開発ツール」枠から「コンソール」を選択します。
    npm install @line/bot-sdkと入力し、LINE Bot SDKをインストールします。
    console.png
    左の「関数」枠から「関数」を選択し、「作成」ボタン(下記画像の赤枠部分)をクリックします。
    createFunctions1.png
    以下の項目を入力して、「作成」ボタン(下記画像の赤枠部分)をクリックします。

  • 開発環境:任意(今回は、「ポータルでの開発」)

  • テンプレートの選択:HTTP trigger

  • 新しい関数:任意(今回は、「LINE-Bot-Test」)

  • Authorization level:Function
    createFunctions2.png
    左の「Developer」枠から「コードとテスト」を選択します。
    code1.png
    下記コードを記載します。
    LINE Messaging API channelの作成で発行した「チャンネルシークレット」と「チャンネルアクセストークン」を<YOUR_TOKEN><YOUR_SECRET>に入力します。

index.js
const line = require('@line/bot-sdk');

const config = {
    channelAccessToken: '<YOUR_TOKEN>',
    channelSecret:  '<YOUR_SECRET>',
};

const client = new line.Client(config);

module.exports = async function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');

    if (req.query.message || (req.body && req.body.events)) {
        if (req.body && req.body.events[0]) {
            message = {
                type: "text",
                text: req.body.events[0].message.text
            }
            console.log(message);
            if (req.body.events[0].replyToken) {
                client.replyMessage(req.body.events[0].replyToken, message);
            }
        }
        else {
            context.res = {
                status: 200,
                body: req.query.message
            };
        }
    }
    else {
        context.res = {
            status: 200,
            body: "Please check the query string in the request body"
        };
    };
};

記載したら、「保存」ボタン(下記画像の赤枠部分)をクリックします。
code2.png
「関数のURLの取得」ボタン(下記画像の赤枠部分)をクリックし、取得したURLを作成した「LINE Messaging API channel」のwebhook URLに登録します。
code3.png
その後、LINEにメッセージを送ると、オウム返しBotが完成したことを確認できます。
LINE.png

15
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
9