回答編集履歴
5
他アカウントからアクセスすると権限エラーになっていたのを修正
test
CHANGED
@@ -48,12 +48,18 @@
|
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
-
下記が全体プログラムになります。
|
51
|
+
下記が全体プログラムになります。デプロイ時は、「アクセスできるユーザー」を「全員」に設定してください。
|
52
52
|
|
53
53
|
code.gs
|
54
54
|
|
55
55
|
```js
|
56
56
|
|
57
|
+
// getActive()を使うと権限エラーとなるため、openById又はopenByUrlを使うこと。
|
58
|
+
|
59
|
+
var sheet = SpreadsheetApp.openById("~~").getSheetByName("シート1");
|
60
|
+
|
61
|
+
|
62
|
+
|
57
63
|
function doGet(){
|
58
64
|
|
59
65
|
var html = HtmlService.createHtmlOutputFromFile("index");
|
@@ -68,9 +74,7 @@
|
|
68
74
|
|
69
75
|
function getData(){
|
70
76
|
|
71
|
-
var sh = SpreadsheetApp.getActiveSheet();
|
72
|
-
|
73
|
-
return sh.getDataRange().getValues()
|
77
|
+
return sheet.getDataRange().getValues()
|
74
78
|
|
75
79
|
}
|
76
80
|
|
@@ -80,7 +84,7 @@
|
|
80
84
|
|
81
85
|
var user = Session.getActiveUser();
|
82
86
|
|
83
|
-
|
87
|
+
sheet.appendRow([user,text]);
|
84
88
|
|
85
89
|
}
|
86
90
|
|
@@ -176,8 +180,6 @@
|
|
176
180
|
|
177
181
|
for(var i = lastrow; i < values.length; i++){
|
178
182
|
|
179
|
-
var record = i + 1;
|
180
|
-
|
181
183
|
var row = table.insertRow(-1);
|
182
184
|
|
183
185
|
row.insertCell(0).innerHTML = '<td><font bgcolor=blue color="#000000">'+values[i][0]+'</td>';
|
@@ -222,15 +224,21 @@
|
|
222
224
|
|
223
225
|
|
224
226
|
|
225
|
-
・load
|
227
|
+
・load 関数内で、withSuccessHandlerを使って非同期にコード.gsのgetData関数を呼び出し、
|
226
|
-
|
228
|
+
|
227
|
-
|
229
|
+
getData関数から取得したチャットデータを、appendTableRows に渡す。
|
230
|
+
|
231
|
+
・appendTableRows 内で、tableのDOMを更新してテーブルの行を追加する。
|
228
232
|
|
229
233
|
```js
|
230
234
|
|
235
|
+
function load(){
|
236
|
+
|
231
|
-
google.script.run
|
237
|
+
google.script.run
|
232
|
-
|
238
|
+
|
233
|
-
|
239
|
+
.withSuccessHandler(appendTableRows).getData();
|
240
|
+
|
241
|
+
}
|
234
242
|
|
235
243
|
```
|
236
244
|
|
@@ -250,8 +258,6 @@
|
|
250
258
|
|
251
259
|
for(var i = lastrow; i < values.length; i++){
|
252
260
|
|
253
|
-
var record = i + 1;
|
254
|
-
|
255
261
|
var row = table.insertRow(-1);
|
256
262
|
|
257
263
|
row.insertCell(0).innerHTML = '<td><font bgcolor=blue color="#000000">'+values[i][0]+'</td>';
|
4
test
CHANGED
@@ -216,8 +216,6 @@
|
|
216
216
|
|
217
217
|
---
|
218
218
|
|
219
|
-
まず、このスクリプトでは、createTemplateFromFileではなく、createHtmlOutputFromFile を使用しています。
|
220
|
-
|
221
219
|
|
222
220
|
|
223
221
|
チャットデータの更新は、下記のようにして行っています。
|
@@ -228,10 +226,18 @@
|
|
228
226
|
|
229
227
|
・getData関数から取得したデータを、appendTableRows に渡し、tableのDOMを更新(行追加)
|
230
228
|
|
231
|
-
|
232
|
-
|
233
229
|
```js
|
234
230
|
|
231
|
+
google.script.run
|
232
|
+
|
233
|
+
.withSuccessHandler(appendTableRows).getData();
|
234
|
+
|
235
|
+
```
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
```js
|
240
|
+
|
235
241
|
function appendTableRows(values){
|
236
242
|
|
237
243
|
if(values == null || values[0]=='') return;
|
3
test
CHANGED
@@ -278,7 +278,7 @@
|
|
278
278
|
|
279
279
|
|
280
280
|
|
281
|
-
上記は素案として作っただけで、まだま
|
281
|
+
上記は素案として作っただけで、まだまだブラッシュアップの余地はたくさんあります。
|
282
282
|
|
283
283
|
|
284
284
|
|
2
test
CHANGED
@@ -36,6 +36,8 @@
|
|
36
36
|
|
37
37
|
(方法として、内部フレームにチャットデータを閉じ込めてフレーム部分を部分更新するとかでしょうか・・・)
|
38
38
|
|
39
|
+
(※なお、今回の目的のためにcreateFromHtmlTemplateFileが全く使えないというわけではありません。ページの静的な組み立て(初期データの表示)にも使える余地はあります)
|
40
|
+
|
39
41
|
|
40
42
|
|
41
43
|
---
|
@@ -276,4 +278,8 @@
|
|
276
278
|
|
277
279
|
|
278
280
|
|
281
|
+
上記は素案として作っただけで、まだまあだブラッシュアップの余地はたくさんあります。
|
282
|
+
|
283
|
+
|
284
|
+
|
279
285
|
20行固定表示以外にも、最初のチャットデータ表示をもっと早くする方法を考えたり、チャットデータの転送量を減らす方法を考えたり(上記スクリプトだとチャットデータを全部送っている)、Vueで作り直したりするのも面白いと思います。
|
1
test
CHANGED
@@ -276,4 +276,4 @@
|
|
276
276
|
|
277
277
|
|
278
278
|
|
279
|
-
20行固定表示以外にも、最初のチャットデータ表示をもっと早くする方法を考えたり、Vueで作り直したりするのも面白いと思います。
|
279
|
+
20行固定表示以外にも、最初のチャットデータ表示をもっと早くする方法を考えたり、チャットデータの転送量を減らす方法を考えたり(上記スクリプトだとチャットデータを全部送っている)、Vueで作り直したりするのも面白いと思います。
|