Technical Articles
Part 1: SAP Cloud Platform FunctionsでLINE BOT開発(オウム返し編)
SAP Cloud Platform Functionsを使ってLINE BOTを作成してみましたので、作り方を紹介します。
今回は入門編ということで、LINEトークに投稿したテキストメッセージをオウム返しするBOTを作成します。
できるようになること
- LINEのBOTを作れるようになる。
- 作ったBOTにメッセージを送ると応答メッセージを返信できるようになる。
所要時間
- 1時間30分
参考: LINEについて
LINEはアジア圏、特に日本において普及しているSNSツールです。
日本国内におけるユーザ数は約7600万人。デイリーアクティブユーザー(DAU)は85%と、利用者数、利用頻度共に非常に高い数値を誇っています。
参考: LINE Messaging APIとは?
LINEのアカウントを通じてユーザーとの双方向コミュニケーションを実現するAPIです。
- LINEのトーク画面を使った対話型Botアプリケーションの開発が可能となります。
このAPIは、宅配便の再配達受付や、年賀状の作成など、多くの企業LINEアカウントにて既に活用されています。
参考: SAP Cloud Platform Functionsとは?
SAPが先般発表したサーバレスアーキテクチャのプログラム実行環境です。
Node.jsで作成したプログラムを実行することが出来ます。
手順の概要
- チャネルの作成
LINEアカウントでログインして初回登録(開発者登録やBOTアカウントの作成など)をする。 - Functionsのサービス有効化
SAP Cloud Platform CF Trial Europe(Frankfurt)環境にアクセスし、Functionsを利用するための初期設定を行う。 - Node.jsのプログラムを作成する
LINEトーク画面からのメッセージを受け取り、返信するプログラムを作成します。 - スマートフォン実機でのテスト
1.チャネルの作成
LINEの公式ページの通りに開発者登録、プロバイダ、チャネルの作成を行います。
今回私は、『オウム返しBOT』という名前のチャネル(BOTアカウント)を作成しました
チャネルの基本設定を行います。設定の変更箇所を朱書きしております。
2.Functionsのサービス有効化
2018年10月24日現在、FunctionsはSAP CP CF版TrialのEurope(Frankfurt)リージョンでのみ利用可能です。
また、Betaサービスを有効化する必要があります。
まず、Betaサービスが利用可能な新規サブアカウントを作成します。
次に、trial2サブアカウントのFunctionsサービスを有効化します。
Functionsのインスタンスを作成します。
3.Node.jsのプログラムを作成する
Functionsダッシュボードにアクセスし、プログラムを作成します。
プログラム名は『myfirstbot』にしました。
以下のコードをコピペしてご利用ください。
**********箇所をLINE BOTのチャネル用のアクセストークンに書き換えてください。
■index.js
var request = require("request");
module.exports = {
handler: function (event, context) {
if (event.data){
if (event.data.events[0].type == "message"){
if (event.data.events[0].message.type == "text"){
var options = {
method: 'POST',
uri: 'https://api.line.me/v2/bot/message/reply',
body: {
replyToken: event.data.events[0].replyToken,
messages: [{
type: "text",
text: event.data.events[0].message.text+"ですね"
}]
},
auth: {
bearer: '*********************************' // ここを自分のアクセストークン(ロングターム)に書き換えてください
},
json: true
};
request(options, function(err, res, body) {
console.log(JSON.stringify(res));
});
}
}
}
console.log('event data ' + JSON.stringify(event.data));
return 'OK';
}
}
■Dependencies
{
"dependencies": {
"request": "*"
}
}
(再掲)アクセストークンは、LINE BOTのチャネルの基本設定画面で確認できます。
ソースコードを編集したら、ダッシュボード右上のSave and Deployボタンを押して保存します。
次に、トリガ設定(何を契機として作成したプログラムを動作させるかの設定)を行います。今回は、HTTPトリガを利用します。
参考: Functionsで利用できるトリガ
トリガ | 説明 |
HTTP | URLを発行し、そのURLに対してHTTPリクエストが行われたときに発火します。 |
Timer | 一定時間おきに処理を実行できます。 |
Event | SAP Enterprise Messagingと組み合わせ、外部から送られてきたイベントを契機としてアプリケーションを動作させることができます。 |
FunctionsのトリガURLをコピーし、LINE Developersのチャネル設定画面のWebhook URLにペーストします。
これで開発は完了です。テストを行います。
4.スマートフォン実機でのテスト
LINE Developersのチャネル設定画面のQRコードをスマートフォンで読み取り、友達追加を行います。
BOTに話しかけ、オウム返しすることを確認します。
以上でLINE BOTの作成が出来ました。
次の記事では、SAP Leonardo Machine Learning APIと連携し、LINEトークに投稿した画像をAIが判定するBOTの作り方について紹介する予定です。
Blogありがとうございます。とても簡単に再現できました。勉強になりました!