質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

1回答

739閲覧

LineBOTでユーザーが入力する値を用いたプログラムをAWS Lambda x Node.js作りたい

ryotask600

総合スコア2

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

0クリップ

投稿2020/05/30 18:05

前提・実現したいこと

AWS Lambda上で稼働するNode.jsのプログラムをLineBOTでユーザーが入力する値を用いた
パチンコシミュレーターのプログラムを作りたいです。

発生している問題・エラーメッセージ

【出来ている事】
・パチンコシミュレーションをする部分のコードは出来上がっております。
・AWS LambdaとAPI Gatewayの設定、LINEBOTでの通知は出来ております。

【分からない点】
分からない事がLINEBOTがJSONでメッセージのやり取りを行う事は理解しており、
ユーザーが入力する値をどのようにコーディングするかが分かりません。
恐らくJSONで受ける部分となるbody.events[0].message.text(JSON.rarse(event.body)のコードです)が
関係するかと存じますが、ご教授いただければ幸いです。

何卒宜しくお願い致します。

該当のソースコード

Node.js

1'use strict'; 2const crypto = require('crypto'); 3const line = require('@line/bot-sdk'); 4const client = new line.Client({channelAccessToken: process.env.ACCESSTOKEN}); 5exports.handler = function (event, context) { 6 let signature = crypto.createHmac('sha256', process.env.CHANNELSECRET).update(event.body).digest('base64'); 7 let checkHeader = (event.headers || {})['X-Line-Signature']; 8 let body = JSON.parse(event.body); 9 if (signature === checkHeader) { 10 // lineの接続チェック用 11 if (body.events[0].replyToken === '00000000000000000000000000000000') { 12 let lambdaResponse = { 13 statusCode: 200, 14 headers: { "X-Line-Status" : "OK"}, 15 body: '{"result":"connect check"}' 16 }; 17 context.succeed(lambdaResponse); 18 } else { 19 let text = body.events[0].message.text; 20 let message; 21 var atariKakuritsuUser = [] 22 23 //ここの部分以降が分かりません。 24 if (body.events[0].message.text == "スタート"){ 25 message = { 26 "type": "text", 27 "text": "大当たり確率の分母を入力してください" 28 }; 29 30 }; 31 client.replyMessage(body.events[0].replyToken, message) 32 .then((response) => { 33 let lambdaResponse = { 34 statusCode: 200, 35 headers: { "X-Line-Status" : "OK"}, 36 body: '{"result":"completed"}' 37 }; 38 context.succeed(lambdaResponse); 39 }).catch((err) => console.log(err)); 40 } 41 }else{ 42 console.log('署名エラー'); 43 } 44};

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

疑問点がよくわかりませんが、Node.js LINE bot オウム返しとかでググるといいんじゃないでしょうか。

投稿2020/06/01 00:32

draq

総合スコア2573

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問