コンテナにバインドされたスクリプトが関連付けられたテンプレート ドキュメントがあります。スクリプトは認証を必要としません。Google ドキュメント UI にカスタム メニューを作成するだけです。
テンプレート ドキュメントは、私の GAE Web アプリによって所有されています。Web アプリを使用して新しいドキュメントを作成するには、次のプロセスを使用します。
- ウェブアプリのサービス アカウントでテンプレートのコピーを作成します。
- ドキュメントの media_body をユーザー提供のコンテンツで更新します。
- ユーザーをドキュメント所有者として設定する権限を挿入します。
- Web アプリ サービス アカウントに関連付けられているアクセス許可を削除して、ドキュメントを作成したユーザーだけがドキュメントを非公開にできるようにします。
このプロセスは、スクリプトでの onOpen() 関数の実行を除いて、期待どおりに機能します。スクリプトはドキュメントとともに正常にコピーされ、onOpen() は手動で (「スクリプト マネージャー」を使用して) 実行できますが、ドキュメントが開かれたときに自動的に実行されることはありません。手順 4 を削除すると問題は解決しますが、これによりドキュメントが「非公開ではなくなります」。
コピーされたプライベート ドキュメントで onOpen() が実行されないのはなぜですか?