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

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

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

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

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1060閲覧

Google Apps script コードが長くなったので分割したい

etrisotoko777

総合スコア25

LINE Messaging API

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

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2021/01/21 10:52

編集2021/01/21 10:57

前提・実現したいこと

Google Apps ScriptでLineBotを作っています。
コードが2000行を超えて長くなったので機能ごとに分割したいと考えています。

機能ごとに別シートで関数を作り、メインシートでelse-ifで場合分けをして呼び出すことを試しましたが出来ませんでした。

試したこと

■関数ごとにコートを分割することを試みました。
⇒botから返答が来ませんでした。

Main

1// LINE Developers の Channel Access Tokenを設定 2var channel_access_token = "アクセストークン"; 3 4// LINEから呼ばれる関数 5function doPost(e) { 6 7 //eventsをJSON.parseで解析 8 var events = JSON.parse(e.postData.contents).events; 9 events.forEach(function(event) { 10 if(event.type == "message"){ 11 lineReply(event); 12 } 13 }); 14} 15 16 // LINEの応答 17function lineReply(e) { 18 //messagesに含むメッセージ 19 var repMes = replyMessage(e); 20 //payloadに含むpostData 21 var postData = { 22 "replyToken" : e.replyToken, 23 "messages" : repMes 24 }; 25 //optionを最初に指定 26 var options = { 27 "method" : "post", 28 "headers" : { 29 "Content-Type" : "application/json", 30 "Authorization" : "Bearer " + channel_access_token 31 }, 32 "payload" : JSON.stringify(postData) 33 }; 34 //optionパラメータを付与 35 UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options); 36} 37 38 39function replyMessage(e) { 40 //replyMessage(e)の実行を送信されたテキストメッセージでelse-ifを使い場合分け 41 if(e.message.text=="Torについて"){ 42 repTorFunc(); 43 } 44 //以下else-ifで別シートに書いた関数を呼び出します。 45 } 46

aboutTor

1function repTorFunc { 2if(e.message.text == "Torについて") { 3 4 var aboutTor = { 5 "type": "flex", 6    "altText": "About Tor", 7    "contents": 8/*================================================ 9Torについて 10ContentsのFlexメッセージ開始 11=================================================*/ 12 { 13 "type": "carousel", 14 "contents": [ 15/*================================================= 16バブル1つ目 17・「Torの概要」 18・「オニオン・ルーティング」 19・「TorBirdyとTails」 20・「.onionドメイン」 21=================================================*/ 22 { 23 "type": "bubble", 24 "size": "kilo", 25 "body": { 26 "type": "box", 27 "layout": "vertical", 28 "contents": [ 29 { 30 "type": "box", 31 "layout": "vertical", 32 "contents": [ 33 { 34 "type": "box", 35 "layout": "baseline", 36 "spacing": "sm", 37 "contents": [ 38 { 39 "type": "text", 40 "text": "Torについて知る①", 41 "wrap": true, 42 "color": "#f5f5f5", 43 "size": "xs", 44 "flex": 5 45 } 46 ] 47 } 48 ] 49 }, 50 { 51 "type": "button", 52 "action": { 53 "type": "message", 54 "label": "Torの概要", 55 "text": "Torの概要" 56 }, 57 "style": "primary", 58 "color": "#884898" 59 }, 60 { 61 "type": "button", 62 "action": { 63 "type": "message", 64 "label": "オニオン・ルーティング", 65 "text": "オニオン・ルーティング" 66 }, 67 "style": "primary", 68 "color": "#884898" 69 }, 70 { 71 "type": "button", 72 "action": { 73 "type": "message", 74 "label": "TorBirdyとTails", 75 "text": "TorBirdyとTails" 76 }, 77 "style": "primary", 78 "color": "#884898" 79 }, 80 { 81 "type": "button", 82 "action": { 83 "type": "message", 84 "label": ".onionドメイン", 85 "text": ".onionドメイン" 86 }, 87 "style": "primary", 88 "color": "#884898" 89 } 90 ], 91 "spacing": "sm", 92 "paddingAll": "13px", 93 "backgroundColor": "#d8bfd8" 94 } 95 } 96/*================================================= 97Torについて 98バブル1つ目終了 99=================================================*/ 100 , 101/*================================================= 102バブル2つ目 103・「facebookとTor」 104・「アメリカ海軍とTor」 105・「電子フロンティア財団」 106・「DuckDuckGo」 107=================================================*/ 108 { 109 "type": "bubble", 110 "size": "kilo", 111 "body": { 112 "type": "box", 113 "layout": "vertical", 114 "contents": [ 115 { 116 "type": "box", 117 "layout": "vertical", 118 "contents": [ 119 { 120 "type": "box", 121 "layout": "baseline", 122 "spacing": "sm", 123 "contents": [ 124 { 125 "type": "text", 126 "text": "Torについて知る②", 127 "wrap": true, 128 "color": "#f5f5f5", 129 "size": "xs", 130 "flex": 5 131 } 132 ] 133 } 134 ] 135 }, 136 { 137 "type": "button", 138 "action": { 139 "type": "message", 140 "label": "facebookとTor", 141 "text": "facebookとTor" 142 }, 143 "style": "primary", 144 "color": "#884898" 145 }, 146 { 147 "type": "button", 148 "action": { 149 "type": "message", 150 "label": "アメリカ海軍とTor", 151 "text": "アメリカ海軍とTor" 152 }, 153 "style": "primary", 154 "color": "#884898" 155 }, 156 { 157 "type": "button", 158 "action": { 159 "type": "message", 160 "label": "電子フロンティア財団", 161 "text": "電子フロンティア財団" 162 }, 163 "style": "primary", 164 "color": "#884898" 165 }, 166 { 167 "type": "button", 168 "action": { 169 "type": "message", 170 "label": "DuckDuckGo", 171 "text": "DuckDuckGo" 172 }, 173 "style": "primary", 174 "color": "#884898" 175 } 176 ], 177 "spacing": "sm", 178 "paddingAll": "13px", 179 "backgroundColor": "#d8bfd8" 180 } 181 }, 182/*================================================= 183Torについて 184バブル2つ目終了 185=================================================*/ 186/*================================================= 187バブル3つ目 188・「Torとダークウェブ」 189・「クリアネットAhmia」 190・「Tor体験レポ」 191・「トップに戻る」 192=================================================*/ 193 { 194 "type": "bubble", 195 "size": "kilo", 196 "body": { 197 "type": "box", 198 "layout": "vertical", 199 "contents": [ 200 { 201 "type": "box", 202 "layout": "vertical", 203 "contents": [ 204 { 205 "type": "box", 206 "layout": "baseline", 207 "spacing": "sm", 208 "contents": [ 209 { 210 "type": "text", 211 "text": "Torについて知る③", 212 "wrap": true, 213 "color": "#f5f5f5", 214 "size": "xs", 215 "flex": 5 216 } 217 ] 218 } 219 ] 220 }, 221 { 222 "type": "button", 223 "action": { 224 "type": "message", 225 "text": "Torとダークウェブ", 226 "label": "Torとダークウェブ" 227 }, 228 "style": "primary", 229 "color": "#884898" 230 }, 231 { 232 "type": "button", 233 "action": { 234 "type": "message", 235 "label": "クリアネットAhmia", 236 "text": "クリアネットAhmia" 237 }, 238 "style": "primary", 239 "color": "#884898" 240 }, 241 { 242 "type": "button", 243 "action": { 244 "type": "message", 245 "label": "Tor体験レポ", 246 "text": "Tor体験レポ" 247 }, 248 "style": "primary", 249 "color": "#884898" 250 }, 251 { 252 "type": "button", 253 "action": { 254 "type": "message", 255 "label": "トップに戻る", 256 "text": "ダークウェブ白書" 257 }, 258 "style": "primary", 259 "color": "#8D3635" 260 } 261 ], 262 "spacing": "sm", 263 "paddingAll": "13px", 264 "backgroundColor": "#d8bfd8" 265 } 266 } 267/*================================================= 268Torについて 269バブル3つ目終了 270=================================================*/ 271 ] 272} 273/*================================================= 274TorについてバブルFlexメッセージ 275以上 276=================================================*/ 277} 278}

####実際のLineBotの画面
LineBot画面①
LineBotの画面②

補足情報(FW/ツールのバージョンなど)

・OS:Chrome
・開発環境:Google Apps Script

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問