質問編集履歴

6

試したこと4を追記。

2019/01/18 16:22

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -322,6 +322,32 @@
322
322
 
323
323
 
324
324
 
325
+ ### 試したこと4:別のスクリプトで試しても実現できない
326
+
327
+
328
+
329
+ 回答者さんに試していただきました。
330
+
331
+ > 普通に(onOpenではない)動かす関数をスクリプトエディタで書いた上で、エディタ画面で実行。
332
+
333
+ > 同じように、承認を求められ、同じように動作しなかった。
334
+
335
+ > 少なくとも数ヶ月前までは、その場で最初の実行が走っていた。どうも承認した瞬間の最初の関数呼び出しの動き自体がかわってる気がする……
336
+
337
+
338
+
339
+ ちなみにGsuite外の個人用のアカウントでも試していただきましたが、
340
+
341
+ 違った動きはみられませんでした。
342
+
343
+
344
+
345
+ ### これはもうgoogleの機能の問題なのか?
346
+
347
+
348
+
349
+ という感じがしていますが…。なぜなのでしょうか…。
350
+
325
351
 
326
352
 
327
353
  ### 補足情報

5

試したこと3を追記しました。

2019/01/18 16:21

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -298,6 +298,30 @@
298
298
 
299
299
 
300
300
 
301
+ ### 試したこと3:onOpenを削除して、トリガーを設定
302
+
303
+
304
+
305
+ onOpen⇒addMenuを起動するスクリプトをまるっと削除して、
306
+
307
+ トリガーを設定しました。
308
+
309
+ (実行する関数/makeContactFromList」「イベントソース/スプレッドシート・起動時」で設定)
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+ 結果、「このドキュメントに添付されたスクリプトを実行するには、あなたの許可が必要です。」が表示されなくなり、前に進みませんでした。
318
+
319
+
320
+
321
+ やはり、onOpenで「実行」をクリックしなければ、「このドキュメントに添付されたスクリプトを実行するには、あなたの許可が必要です。」が表示されないようです。
322
+
323
+
324
+
301
325
 
302
326
 
303
327
  ### 補足情報
@@ -306,22 +330,20 @@
306
330
 
307
331
  - 当方Gsuiteユーザです
308
332
 
333
+
334
+
309
335
  - 一度実行すればキレイに更新されるので、スクリプトの記述に問題があるわけではなさそうです。
310
336
 
337
+
338
+
311
339
  - 当初(2018年9月、10月頃)はうまくいっていたのですが、11月頃からできなくなりました。
312
340
 
341
+
342
+
313
343
  - ~~できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。~~
314
344
 
315
345
  ⇒ GsuiteでSSO導入無しのユーザさんに検証いただく。結果、同様の事象が発生したので関係なさそう。
316
346
 
317
- - トリガー設定はスクリプトの制作段階(2018年8月頃)で一度設定してやってみましたが、
318
-
319
- (確か「実行する関数/makeContactFromList」「イベントソース/スプレッドシート・起動時」で設定)
320
-
321
- トリガーだけだと、「このドキュメントに添付されたスクリプトを実行するには、あなたの許可が必要です。」が表示されず、やむなくonOpenでクリックするひと手間を入れた記憶があります。
322
-
323
- …が、もう一度やってみます。
324
-
325
347
 
326
348
 
327
349
  ### 実行トランススクリプトの結果

4

実行トランススクリプトをcode表示に変更

2019/01/17 08:32

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -340,7 +340,7 @@
340
340
 
341
341
 
342
342
 
343
-
343
+ ```ログ
344
344
 
345
345
  **(実行前)※作成時に試したログだと思われます**
346
346
 
@@ -460,6 +460,6 @@
460
460
 
461
461
  [19-01-16 17:22:45:651 PST] 実行が無事終了しました(合計ランタイム 34.5 秒)
462
462
 
463
-
463
+ ```
464
464
 
465
465
  連絡先はきれいに更新されました。

3

追加情報を記載(補足事項)

2019/01/17 05:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -70,9 +70,7 @@
70
70
 
71
71
 
72
72
 
73
-
74
-
75
- ### 発生している問題・エラーメッセージ
73
+ ### エラーメッセージ
76
74
 
77
75
 
78
76
 
@@ -240,21 +238,89 @@
240
238
 
241
239
 
242
240
 
243
-
244
-
245
- ### 補足情報(FW/ツールのバージョンなど)
241
+ ### 試したこと2:addMenuメソッド⇒addItemメソッドに変更
242
+
243
+
244
+
246
-
245
+ (変更前)
246
+
247
-
247
+ ```ここに言語名を入力
248
+
248
-
249
+ /** メニューへ登録 */
250
+
251
+ function onOpen() {
252
+
253
+ var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
254
+
255
+ var entries = [{
256
+
257
+ name : "連絡先を更新",
258
+
259
+ functionName : "makeContactFromList"
260
+
261
+ }];
262
+
263
+ spreadsheet.addMenu("ここをクリックしてください", entries);
264
+
265
+ };
266
+
267
+ ```
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+ (変更後)
276
+
277
+ ```ここに言語名を入力
278
+
279
+ /** メニューへ登録 */
280
+
281
+ function onOpen() {
282
+
283
+ var ui = SpreadsheetApp.getUi(); // Uiクラスを取得する
284
+
285
+ var menu = ui.createMenu('ここをクリックしてください'); // Uiクラスからメニューを作成する
286
+
287
+ menu.addItem('連絡先を更新', 'makeContactFromList'); // メニューにアイテムを追加する
288
+
289
+ menu.addToUi(); // メニューをUiクラスに追加する
290
+
291
+ };
292
+
293
+ ```
294
+
295
+
296
+
297
+ に変更して再度実行しましたが、改善は見られませんでした。
298
+
299
+
300
+
301
+
302
+
303
+ ### 補足情報
304
+
305
+
306
+
249
- 当方Gsuiteユーザです
307
+ - 当方Gsuiteユーザです
250
-
308
+
251
- 一度実行すればキレイに更新されるので、スクリプトの記述に問題があるわけではなさそうです。
309
+ - 一度実行すればキレイに更新されるので、スクリプトの記述に問題があるわけではなさそうです。
252
-
310
+
253
- 当初はうまくいっていたのですが、突然できなくなりました。
311
+ - 当初(2018年9月、10月頃)はうまくいっていたのですが、11月頃からできなくなりました。
254
-
312
+
255
- ~~できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。~~
313
+ - ~~できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。~~
256
-
314
+
257
-  ⇒ GsuiteでSSO導入無しのユーザさんに検証いただく。結果、同様の事象が発生したので関係なさそう。
315
+ ⇒ GsuiteでSSO導入無しのユーザさんに検証いただく。結果、同様の事象が発生したので関係なさそう。
316
+
317
+ - トリガー設定はスクリプトの制作段階(2018年8月頃)で一度設定してやってみましたが、
318
+
319
+ (確か「実行する関数/makeContactFromList」「イベントソース/スプレッドシート・起動時」で設定)
320
+
321
+ トリガーだけだと、「このドキュメントに添付されたスクリプトを実行するには、あなたの許可が必要です。」が表示されず、やむなくonOpenでクリックするひと手間を入れた記憶があります。
322
+
323
+ …が、もう一度やってみます。
258
324
 
259
325
 
260
326
 

2

内容をより詳細にした。1つの検証結果を追記した。

2019/01/17 05:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -50,7 +50,17 @@
50
50
 
51
51
 
52
52
 
53
+ ### 問題を端的に言うと(papinianusさんより)
54
+
55
+
56
+
53
- 当方Gsuiteユーザで出来なくなったタイミング、GsuiteにSSOを入たタイミングと一致しているよう気がします。
57
+ > 質問はつきつめると「最初の承認直後には、スクリプトが動作してぜか?」
58
+
59
+
60
+
61
+ まさにこれです。
62
+
63
+
54
64
 
55
65
 
56
66
 
@@ -208,11 +218,27 @@
208
218
 
209
219
 
210
220
 
221
+
222
+
211
- ### 試したこと
223
+ ### 試したこと:SSO(SAML2.0)が関係しているか検証
224
+
225
+
226
+
212
-
227
+ ~~当方Gsuiteユーザで、出来なくなったタイミングが、GsuiteにSSOを入れたタイミングと一致しているような気がします。~~
228
+
229
+
230
+
213
-
231
+ ⇒ GsuiteでSSOを入れていないユーザさんに事象再現をしていただきました。
232
+
214
-
233
+ 結果、当方と同じく、承認した直後にはスクリプトは走らず、二回目に実行したらグループに入りました。
234
+
235
+
236
+
215
- こに問題に対して試したこを記載してくだ
237
+ ので、SSOの関連は低いことが推察れます
238
+
239
+
240
+
241
+
216
242
 
217
243
 
218
244
 
@@ -226,7 +252,9 @@
226
252
 
227
253
  ・当初はうまくいっていたのですが、突然できなくなりました。
228
254
 
229
- ・できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。
255
+ ~~できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。~~
256
+
257
+  ⇒ GsuiteでSSO導入無しのユーザさんに検証いただく。結果、同様の事象が発生したので関係なさそう。
230
258
 
231
259
 
232
260
 

1

実行トランススクリプト情報を追記

2019/01/17 05:23

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -227,3 +227,145 @@
227
227
  ・当初はうまくいっていたのですが、突然できなくなりました。
228
228
 
229
229
  ・できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。
230
+
231
+
232
+
233
+ ### 実行トランススクリプトの結果
234
+
235
+
236
+
237
+ ご依頼ありがとうございます。下記にて記載いたしますが要約は
238
+
239
+
240
+
241
+ ・1回目の実行:何も結果表示されない
242
+
243
+ ・2回目の実行:onOpenをすっとばして、fanction実行されている
244
+
245
+ です。
246
+
247
+
248
+
249
+
250
+
251
+ **(実行前)※作成時に試したログだと思われます**
252
+
253
+ [19-01-16 17:20:08:132 PST] SpreadsheetApp.getActiveRange() [0 秒]
254
+
255
+ [19-01-16 17:20:08:132 PST] Range.getRow() [0 秒]
256
+
257
+ [19-01-16 17:20:08:132 PST] Range.getLastRow() [0 秒]
258
+
259
+ [19-01-16 17:20:08:132 PST] Range.getColumn() [0 秒]
260
+
261
+ [19-01-16 17:20:08:133 PST] Range.getLastColumn() [0 秒]
262
+
263
+ [19-01-16 17:20:08:133 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
264
+
265
+ [19-01-16 17:20:08:134 PST] 実行を開始しています
266
+
267
+ [19-01-16 17:20:08:139 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
268
+
269
+ [19-01-16 17:20:08:228 PST] Spreadsheet.addMenu([ここをクリックしてください, [{functionName=makeContactFromList, name=連絡先を更新}]]) [0.087 秒]
270
+
271
+ [19-01-16 17:20:08:357 PST] 実行が無事終了しました(合計ランタイム 0.089 秒)
272
+
273
+
274
+
275
+ **(一回目の実行後)※変化ありませんでした**
276
+
277
+ [19-01-16 17:20:08:132 PST] SpreadsheetApp.getActiveRange() [0 秒]
278
+
279
+ [19-01-16 17:20:08:132 PST] Range.getRow() [0 秒]
280
+
281
+ [19-01-16 17:20:08:132 PST] Range.getLastRow() [0 秒]
282
+
283
+ [19-01-16 17:20:08:132 PST] Range.getColumn() [0 秒]
284
+
285
+ [19-01-16 17:20:08:133 PST] Range.getLastColumn() [0 秒]
286
+
287
+ [19-01-16 17:20:08:133 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
288
+
289
+ [19-01-16 17:20:08:134 PST] 実行を開始しています
290
+
291
+ [19-01-16 17:20:08:139 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
292
+
293
+ [19-01-16 17:20:08:228 PST] Spreadsheet.addMenu([ここをクリックしてください, [{functionName=makeContactFromList, name=連絡先を更新}]]) [0.087 秒]
294
+
295
+ [19-01-16 17:20:08:357 PST] 実行が無事終了しました(合計ランタイム 0.089 秒)
296
+
297
+
298
+
299
+ **(2回目の実行後)※functionのみ実行されます**
300
+
301
+ [19-01-16 17:22:11:077 PST] 実行を開始しています
302
+
303
+ [19-01-16 17:22:11:086 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
304
+
305
+ [19-01-16 17:22:11:163 PST] Spreadsheet.toast([処理中, , -1.0]) [0.076 秒]
306
+
307
+ [19-01-16 17:22:11:535 PST] ContactsApp.getContact([//@email.com]) [0.37 秒]
308
+
309
+ [19-01-16 17:22:14:403 PST] ContactsApp.getContact([//@email.com]) [2.867 秒]
310
+
311
+ [19-01-16 17:22:17:038 PST] ContactsApp.getContact([//@email.com]) [2.635 秒]
312
+
313
+ [19-01-16 17:22:19:945 PST] ContactsApp.getContact([//@email.com]) [2.906 秒]
314
+
315
+ [19-01-16 17:22:22:782 PST] ContactsApp.getContact([//@email.com]) [2.836 秒]
316
+
317
+ [19-01-16 17:22:25:156 PST] ContactsApp.getContact([//@email.com]) [2.373 秒]
318
+
319
+ [19-01-16 17:22:28:088 PST] ContactsApp.getContact([//@email.com]) [2.931 秒]
320
+
321
+ [19-01-16 17:22:30:968 PST] ContactsApp.getContact([//@email.com]) [2.88 秒]
322
+
323
+ [19-01-16 17:22:33:801 PST] ContactsApp.getContact([//@email.com]) [2.83 秒]
324
+
325
+ [19-01-16 17:22:36:555 PST] ContactsApp.getContact([//@email.com]) [2.753 秒]
326
+
327
+ [19-01-16 17:22:36:556 PST] SpreadsheetApp.getActiveSheet() [0 秒]
328
+
329
+ [19-01-16 17:22:36:866 PST] Sheet.getDataRange() [0.309 秒]
330
+
331
+ [19-01-16 17:22:36:866 PST] Range.getNumRows() [0 秒]
332
+
333
+ [19-01-16 17:22:36:941 PST] Range.getValues() [0.074 秒]
334
+
335
+ [19-01-16 17:22:39:606 PST] ContactsApp.getContact([//@email.com]) [2.664 秒]
336
+
337
+ [19-01-16 17:22:39:687 PST] ContactsApp.getContactGroup([●●●]) [0.081 秒]
338
+
339
+ [19-01-16 17:22:39:688 PST] Contact.addToGroup([ContactGroup]) [0 秒]
340
+
341
+ [19-01-16 17:22:39:688 PST] ContactGroup.addContact([Contact]) [0 秒]
342
+
343
+ [19-01-16 17:22:39:689 PST] Logger.log(//@email.comを●●●に追加, []]) [0 秒]
344
+
345
+ [19-01-16 17:22:42:534 PST] ContactsApp.getContact([//@email.com]) [2.844 秒]
346
+
347
+ [19-01-16 17:22:42:613 PST] ContactsApp.getContactGroup([▼▼▼]) [0.078 秒]
348
+
349
+ [19-01-16 17:22:42:613 PST] Contact.addToGroup([ContactGroup]) [0 秒]
350
+
351
+ [19-01-16 17:22:42:614 PST] ContactGroup.addContact([Contact]) [0 秒]
352
+
353
+ [19-01-16 17:22:42:614 PST] Logger.log([//@email.comを▼▼▼に追加, []]) [0 秒]
354
+
355
+ [19-01-16 17:22:45:512 PST] ContactsApp.getContact([//@email.com]) [2.897 秒]
356
+
357
+ [19-01-16 17:22:45:512 PST] Contact.addToGroup([ContactGroup]) [0 秒]
358
+
359
+ [19-01-16 17:22:45:513 PST] ContactGroup.addContact([Contact]) [0 秒]
360
+
361
+ [19-01-16 17:22:45:513 PST] Logger.log([//@email.comを▼▼▼に追加, []]) [0 秒]
362
+
363
+ [19-01-16 17:22:45:514 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
364
+
365
+ [19-01-16 17:22:45:584 PST] Spreadsheet.toast([画面を閉じてください, 完了, -1.0]) [0.07 秒]
366
+
367
+ [19-01-16 17:22:45:651 PST] 実行が無事終了しました(合計ランタイム 34.5 秒)
368
+
369
+
370
+
371
+ 連絡先はきれいに更新されました。