Skip to Content
Technical Articles
Author's profile photo yasuyuki uno

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で作成したプログラムを実行することが出来ます。


手順の概要

  1. チャネルの作成
    LINEアカウントでログインして初回登録(開発者登録やBOTアカウントの作成など)をする。
  2. Functionsのサービス有効化
    SAP Cloud Platform CF Trial Europe(Frankfurt)環境にアクセスし、Functionsを利用するための初期設定を行う。
  3. Node.jsのプログラムを作成する
    LINEトーク画面からのメッセージを受け取り、返信するプログラムを作成します。
  4. スマートフォン実機でのテスト

 

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の作り方について紹介する予定です。

Part 2 : SAP Cloud Platform FunctionsでLINE BOT開発(画像判定編)

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo Maxime Simon
      Maxime Simon

      Blogありがとうございます。とても簡単に再現できました。勉強になりました!