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

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

新規登録して質問してみよう
ただいま回答率
85.50%
AWS Lambda

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

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Node.js

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1649閲覧

node.jsで外部依存モジュールを使用しないLINE BOTを作りたい

otaaa

総合スコア19

AWS Lambda

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

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Node.js

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2019/03/15 13:19

編集2019/03/15 13:21

前提・実現したいこと

node.jsで外部依存モジュールを使用しないLINE BOTを作りたいです

###質問の内容
ネットでコピペして持ってきたのですが、
GASで実行すると
「構文エラー。(行 18、ファイル「コード」」
とエラーが発生します。

また、awsのlambdaで実行するとタイムアウトが発生します。

node.jsの初心者で、ググっても全くわからないです。
よろしくお願いします

該当のソースコード

'use strict'; const http = require('http'); const https = require('https'); const crypto = require('crypto'); const HOST = 'api.line.me'; const REPLY_PATH = '/v2/bot/message/reply';//リプライ用 const CH_SECRET = 'チャンネルシークレットを入力'; //Channel Secretを指定 const CH_ACCESS_TOKEN = 'トークンを入力'; //Channel Access Tokenを指定 const SIGNATURE = crypto.createHmac('sha256', CH_SECRET); const PORT = 3000; /** * httpリクエスト部分 */ const client = (replyToken,SendMessageObject)=>{ let postDataStr = JSON.stringify({ replyToken: replyToken, messages: SendMessageObject }); let options = { host: HOST, port: 443, path: REPLY_PATH, method: 'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8', 'X-Line-Signature': SIGNATURE, 'Authorization': `Bearer ${CH_ACCESS_TOKEN}`, 'Content-Length': Buffer.byteLength(postDataStr) } }; return new Promise((resolve, reject) => { let req = https.request(options, (res) => { let body = ''; res.setEncoding('utf8'); res.on('data', (chunk) => { body += chunk; }); res.on('end', () => { resolve(body); }); }); req.on('error', (e) => { reject(e); }); req.write(postDataStr); req.end(); }); }; http.createServer((req, res) => { if(req.url !== '/' || req.method !== 'POST'){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(''); } let body = ''; req.on('data', (chunk) => { body += chunk; }); req.on('end', () => { if(body === ''){ console.log('bodyが空です。'); return; } let WebhookEventObject = JSON.parse(body).events[0]; //メッセージが送られて来た場合 if(WebhookEventObject.type === 'message'){ let SendMessageObject; if(WebhookEventObject.message.type === 'text'){ SendMessageObject = [{ type: 'text', text: WebhookEventObject.message.text }]; } client(WebhookEventObject.replyToken, SendMessageObject) .then((body)=>{ console.log(body); },(e)=>{console.log(e)}); } res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('success'); }); }).listen(PORT); console.log(`Server running at ${PORT}`);

###エラーメッセージ
GASの場合

エラーメッセージ 構文エラー。(行 18、ファイル「コード」

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

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

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

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

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

guest

回答1

0

自己解決

チャンネルシークレットとトークンの部分を入力すればできました

投稿2020/10/26 16:05

otaaa

総合スコア19

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問