問題タブ [google-apps-script-addon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-apps-script - 以前は機能していたスクリプトで、onOpen と onInstall に問題が発生しました。イベントは常に発生するとは限りません
そのため、onOpen/onInstall 関数を使用してメニューをロードしたり、いくつかの小さな起動処理を実行したりする Google Apps Scripts がたくさんあります。彼らは皆、かなり長い間ギャラリーで働いています。
最近、正確な時期はわかりませんが、Google が更新した何かが次のような問題を引き起こしました。
- OnOpen は常に開いているとは限らない
- OnInstall は起動しますが、スクリプト内の関数にアクセスできません。具体的には、メニュー項目を選択しようとすると、Apps Scripts は関数が存在しないというエラーを表示します (ただし、存在します)。
ユーザーにとって信じられないほどくだらない回避策があります: スクリプトを 2 回インストールします。どういうわけか、これは登録された機能を取得し、onInstall はメニューをロードします。ただし、これはシートが閉じられるまでしか機能しません。その後、再度インストールする必要があります。
だからここに私の質問があります:
- 他の人がこの問題を抱えていますか? 彼らは回避策を見つけましたか?
- これは Google が認識しており、修正されていることですか?
- これがいつ起こったのか知っている人はいますか?
最後に、本番環境でスクリプトの API を「凍結」するというアイデアを提案したいと思います。すなわち。API バージョン XXX を使用していることを示す変数を一番上に配置し、それが Apps Script を起動する API であることを示します。Google の更新によって壊れたスクリプトを本番環境で使用したのは、これが 3 回目です。ある時点で、何かを世に出すとき、それが機能し続けることを知ることができる必要があります. ユーザーは私たちの間違いと API のバグを区別しません。つまり、私たちはこの種の問題から熱を奪っています。
google-apps-script - ユーザーが Google スプレッドシートに行または列を挿入し、スクリプトで反応していることを検出する
Google Apps Script の基本的なツールの 1 つは、スプレッドシートの onEdit トリガーです。これにより、ユーザーがセルを編集したことを検出し、それに反応することができます。
ユーザーが行または列を挿入するときはどうですか? それを検出する方法はありますか?
それは onEdit を引き起こしますか?もしそうなら、ScriptDb で行数または列数のカウントを維持し、毎回チェックすることはできると思いますが、getMaxRows() はすでにかなり遅いため、ScriptDb に手を差し伸べるのは次のようになるため、非常に時間がかかります。良い。
どう思いますか ?
google-apps-script - Google Apps Script を配布して更新をプッシュする
私たちの組織では、内部アプリへのデータ入力として Google スプレッドシートを使用しています。スプレッドシートの変更プロセスを容易にするために、Google Apps Script を作成しました。
ご覧のとおり、このスクリプトはスプレッドシート形式に依存しており、私たちの組織にのみ適用される非常に特殊な用途を提供します。
私の質問は、それを使用しているすべてのスプレッドシート インスタンスに変更を自動的にプッシュする方法です。
スクリプトをスクリプト ギャラリーに追加できますが、これらの種類のスクリプトには適切な場所ではないと思います。また、マスター コピーへの変更がクライアントにプッシュされるかどうかについての情報も見つかりません。
私が見る他のオプションは、スクリプトを内部に含むスプレッドシート テンプレートを作成することですが、やはり、変更はプッシュされますか?
google-apps-script - Google Apps Script Web App を G Suite Marketplace に公開することはできますか?
Google Script Web App を Chrome Web Store に公開できることは知っていますが、Google Suite Marketplace に公開することは可能ですか?
GAS エディタには「マーケットプレイスに公開」オプションはありませんが、Chrome Web Store から Google Script ベースのアプリ マニフェスト ファイルを見てきましたが、可能性はあると思います。
残念ながら、公開の最後のステップ (Google G Suite Marketplace Listing Review Request への記入) で問題が発生したため、Google Script ベースのアプリが G Suite Marketplace の要件に準拠しているかどうかわかりません。
実際、Chrome ウェブストアの GAS マニフェスト ファイルは次のようになります。
それで、あなたはどう思いますか?
google-apps-script - Google Apps Script を利用したスプレッドシートを限られたユーザーに大量導入する
私たちは 100 人以上のユーザーを抱えており、Google スプレッドシートを 1 つずつ作成し、スプレッドシートに生データを入力するように依頼しています。
現在のワークフローは、スプレッドシートを 1 つずつ CSV ファイルにエクスポートし、バックエンド システムにインポートするプログラムです。それで大丈夫です。
現在、Google Apps Script の方が優れたソリューションである可能性があることがわかりました。たとえば、ユーザーは「アドオン -> アドオンの取得」を使用してスプレッドシートでアドオンを見つけることができるため、複数の機能を作成して完全に自動化できます。検証、ドライラン、インポートなどの API を呼び出してプロセスをインポートします。
問題点:
- アプリ スクリプトの機能を更新し続けるため、これらの 100 以上のシート ドキュメントを毎回更新する必要はありません。
すべてのパブリック ユーザーがアドオンにインストールできるようにするのではなく、クライアント (Google 認証を持っている) のみがインストールできるようにする必要があります。
ユーザーがスクリプトを表示/変更できないように保護できるとよいでしょう
それらは可能ですか?
現在、最善の方法は、新しいライブラリ プロジェクトを作成し、その中にほとんどのコードを配置して、このライブラリを使用するコンテナー バウンド アプリ スクリプトを作成することだと思います。より良い方法はありますか?
google-apps-script - 制限モードのアプリ スクリプトにメニュー項目を追加する Google アドオン
新しい Google アプリ スクリプト アドオン ストアにアドオンが公開されていますが、最初にインストールされたスプレッドシート以外のスプレッドシートでアドオンを使用すると、権限が正しく機能しないようです。
新しいスプレッドシートが作成され、ユーザーが [アドオンの管理] メニューから [このアドオンを使用] を選択すると、メニュー項目が入力されないという問題が発生しています。今のところ、アドオンを削除して再インストールし、完全なアクセス許可のアクセス許可フローを強制するように人々に伝えてきました。
https://developers.google.com/apps-script/add-ons/lifecycle#openingでパーミッション ライフサイクル ガイドを見たところ、onOpen 関数は LIMITED パーミッション モードでメニュー項目を追加できるようです。
私たちが間違っていることを知っている人はいますか?
google-apps-script - Google フォームのアドオンの DialogBox
DialogBox
Google フォームのアドオンで使用されている関数からを表示しようとしています。
とは異なりFormApp.getUi().showModalDialog(content, title)
、関数 usingDialogBox
は呼び出されますが何もしません (何も表示されません)。そのようなコンポーネントを Google アドオンに表示することに成功した人はいますか?
使用の目的は、使用DialogBox
できないクローズ ハンドラーを設定できるようにすることです(作成されたダイアログ.showModalDialog(...)
を返しますが、参照はしません)。void
アドオンの UI 用 Google API でダイアログを表示し、閉じたときにコールバックを行う方法は他にありません。
google-apps-script - コードからアドオンをリロード
Google スプレッドシートのサイドバーに読み込まれる google apps-script アドオンがあります。
ユーザーがシートを切り替えたり、ボタンをクリックしてアプリスクリプトアドオンをリロードするにはどうすればよいですか?